使用PL/SQL可以直接在表
上修改。
有两种方式:
1、select
from
table
for
update;
解锁直接修改,然后提交。这个有一个不好的地方,这样会锁表。一般采用第二种方式
2、select
rowid,t
from
table
t
;
解锁直接修改,然后提交
,这种方式不会锁表。
用数据库工具(如:SQL Server)是可以直接修改的。如果从程序逻辑修改的话,只更新要修改的字段也是可以的,如果在修改的时候自动更新其它字段(如:最近更新时间)的话,这样每改一次,数据库中的时间就会发生变化。
你点击修改修改的是gridcontrol中的数据,你修改的哪一列gridview是知道的(除非你没有把每一列对应数据库哪一个字段告诉gridview(这样是不应该的))
所以一般来说你可以这样
var coumnName=gridview1Columns[col1]ColumnName;
通过update语句实现
sql:update tablename set age=4 where age=2。
解释 :上面表的意思是更新tablename表中age字段值2为4。update语句的作用主要就是通过对某些特定表进行更新,如果没有where条件语句的话,就是更加整张表的age字段值为4。
最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能) 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的 *** 作风险很大。如果是误 *** 作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新 *** 作:
ps:c,d是需要更新的 *** 作,e,f是条件。必须强调的是id必须是主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新 *** 作:
ps:c,d是需要更新的 *** 作,e,f是条件。必须强调的是id必须是主键
你要写在GridView
的数据绑定事件里面
然后你要绑定一个你数据库是唯一的数据例如自增的ID
根据ID来修改数据
你看你的SQL语句根本没有条件
它就把你数据库所有数据都修改了
你在建立外键的时候要指定更新的关联,这样删除User中的一笔记录,所有以User表的UserId为外键的表的记录都会删除,修改User中UserId的值,所有所有以User表的UserId为外键的表的记录都会更新这个UserId的值
比如MSSQL中:
alter table tbl_xxx
add constraint FK_xxx foreign key (lodNo)
references tbl_aaa (loNo)
on update cascade on delete cascade
注意on update cascade on delete cascade
以上就是关于Oracle数据库中查出来的数据可以在表上直接修改吗全部的内容,包括:Oracle数据库中查出来的数据可以在表上直接修改吗、SQL数据库里的数据可以修改吗不留痕迹、C#中如何修改数据库中某个表中的数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)