十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
需要用updata语句来批量修改。
成都创新互联公司是一家集网站建设,思明企业网站建设,思明品牌网站建设,网站定制,思明网站建设报价,网络营销,网络优化,思明网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
如图,test表中有如下数据:
现在要将id小于3的name改成“孙七”,可用如下语句:
update test set name='孙七' where id3;
commit;执行后结果为:
--以下是我根据你的描述,做的测试,希望对你有帮助:\x0d\x0a\x0d\x0a-- 新建一张表kongxianji:\x0d\x0aCREATE TABLE kongxianji(a VARCHAR2(200));\x0d\x0a\x0d\x0a-- 插入数据,然后提交:\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(6)789');\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(67)89');\x0d\x0aINSERT INTO kongxianji (a) VALUES ('12345(678)9');\x0d\x0aCOMMIT;\x0d\x0aSELECT * FROM kongxianji;\x0d\x0a\x0d\x0a-- 把a中的括号去掉,然后提交,到这一步可以查看表中数据的变化情况:\x0d\x0aUPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');\x0d\x0aCOMMIT;\x0d\x0a\x0d\x0aSELECT * FROM kongxianji;
最好的方法是批量修改,即每次修改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必须是主键