Oracle数据库中查出来的数据可以在表上直接修改吗

Oracle数据库中查出来的数据可以在表上直接修改吗,第1张

使用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#中如何修改数据库中某个表中的数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10173463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存