oracle判断表存在相同数据。修改其中一条。

问题描述

如题 。比如说a表存在2个张三,我需要修改其中一个张三的某个字段。

解决方案

select * from (selece * from 表名 order by 重复的列名) where rownum=1--找到编号 id 执行一个update--其实写一个存储过程,或函数就ok了
解决方案二:
按照表设计的规范,在a表中应该设置主键,在同一个表中主键是不能重复的,如果你在一个表中有两条同样的记录,即使你想修改,你也需要指明你需要修改的记录,你可以通过工具直接修改你想改变的记录。如果设置的了主键就不同了,设置了主键,你就可以根据主键作为where 条件进行修改,这样指定修改更明确写。建议看看数据表设计规范,应该满足一范式。

时间: 2024-08-01 23:12:56

oracle判断表存在相同数据。修改其中一条。的相关文章

update-SQL 根据表A的数据修改表B,当一条表B的数据匹配到多条表A的数据时选其中一条修改

问题描述 SQL 根据表A的数据修改表B,当一条表B的数据匹配到多条表A的数据时选其中一条修改 update B set _flg = 'update', b_string1 = t4.a_string1, b_string2 = t4.a_string2, b_string3 = t4.a_string3, b_string4 = t4.a_string4, b_string5 = t4.a_string5, update_by = current_user, update_date = ge

oracle语句 insert-使用oracle 向表中insert 数据后, 不能查看到insert的行。

问题描述 使用oracle 向表中insert 数据后, 不能查看到insert的行. 使用的环境:vmware + win7 + oracle 现在我是scott用户登入,向oracle 中自带的表(dept)中插入值: INSERT INTO dept(deptno,dname,loc) VALUES('80','stu','xiz'); 然后我再 SELECT * FROM dept; /* 但是却没有看到我增加的这一列(不管我使用的是pl sql developer 还是 pl plus

java将oracle一个表空间的数据同步到另一个表空间的数据,来看看有没有问题

问题描述 代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.Date;import java.util.List;public class Bak {public static

Oracle的表空间与数据文件简介

一.概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象:永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空间分类:系统表空间(system.sysaux),非系统表空间 一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间. 不可或缺的几个表空间: SYSTEM --->字典表空间,不能被损坏 UNDO    --->dml,dql把数据快照到此,数据提交即消失(用于恢复) SYSAUX    

oracle 判断表是否存在的例子

主要是查询all_tables表的TABLE_NAME和OWNER,如果表存在,则执行execute immediate 'drop table TABLE_NAME'; --判断表是否存在,如果存在则删除 declare       num   number; begin       select count(1) into num from all_tables where TABLE_NAME = 'EMP' and OWNER='SCOTT';       if   num=1   th

oracle 插入表数据,如果已存在修改其中一条字段值

问题描述 insert into t_a select * from t_b;我将b表的数据一次性插入到a表 通过名字比较.比如说: a表已存在张三这个人 , 还是继续插入,这时存在2个张三,我需要修改其中一个张三的某个字段值,表示他已重复(不能说重复了就不插入).该如何实现.望指点. 问题补充:影梦龙 写道 解决方案 update a set 想要修改字段=需要的值 where id=(select min(ID) from a);

判断表中的数据是否被其他表中使用过!!

数据 CREATE PROCEDURE dbo.SystemFuntion_HasBeUsed@PTableName Varchar(100), --要检查数据是否被使用的主键表名称@PKValue INT,    --主键字段的值@IsUsed  INT OUTPUTAS  DECLARE @TableName VARCHAR(100) --外键表的名称 DECLARE @FKName VARCHAR(100) --外键字段名称 DECLARE @FKey INT  DECLARE @SQL

程序每隔2秒读取一次数据表,表数据500多条,数据半年变一次,能不能把这些数据放到内存里,不用每次读库

问题描述 表结构:自动ID帐号密码IDabcxxxIDxyzxxx表很简单.数据500多条,但是使用很频繁,每2秒左右查询一次,用的条件是select密码from表名where帐号=abc,每次都读取关闭,对数据库和程序都有影响.我想问的是.能把这个表放内存里吗?或者其他办法.不用频繁读取数据库也行,谢谢 解决方案 解决方案二:Asp.net?使用Cache缓存数据库吧解决方案三:引用1楼cadust的回复: Asp.net?使用Cache缓存数据库吧 winform程序解决方案四:做一个SER

sqlserver-sql 通过like查询出一张表的一些数据,然后打算更新其中一列数据

问题描述 sql 通过like查询出一张表的一些数据,然后打算更新其中一列数据 请问下,先通过like查询a表中一些数据然后打算更新查询结果中一列数据,请问怎么弄你? 解决方案 update a set 字段1='新值' where 字段2 like '%条件%' 解决方案二: update tablename set 字段='XX' where 字段 like '%XX%' 解决方案三: 如果是在Oracle下,我用PLSQL Developer试过这样的方式.select * from ta