急!!!如何更改Oralce主键记录???
Oracle数据库中要更改主从表中的Record_ID 关键字字段的记录怎么办?
比如主表、从表Record字段记录为0020000001,现在两个表都要改为0015000001?
而且记录有上千条呀!
我现在知道土办法,就是先将两个表的记录导出文本文件,查找替换,再删除表中所有记录后把修改后的记录导进来。
Oracle数据库中要更改主从表中的Record_ID 关键字字段的记录怎么办?
比如主表、从表Record字段记录为0020000001,现在两个表都要改为0015000001?
而且记录有上千条呀!
我现在知道土办法,就是先将两个表的记录导出文本文件,查找替换,再删除表中所有记录后把修改后的记录导进来。
UPDATE tbl
SET record='0015000001'
WHERE record='0020000001'
表达不明确,把你的表结构贴出来,要更改哪些字段?
Re: welyngj(不做老实人)
这是更新主键的记录值,那样update是不行的,因为有关联关系。
Re: rolandzhang()
比如:设备表tb_shebei和厂家表tb_changjia,tb_shebei的主键shebei_id是tb_changjia中shebei_bianhao的外键,原来Id的编码规则是0020000001开始递增1的,现在要改为0015000001开始递增1,已经有很多设备记录了。我是想寻求高级一点update方法,现在我已经把数据表记录改好了。
谢谢关注!
这是主键.有没有外键关联啊?如果有的话更新了以后都失效了. :)
在sql/plus里,执行更新,两个表一起,然后在commit;
应该可以吧。
先Disable外键约束,修改完以后在Enable
创建表外键时指定on update cascade
同意ks9960(snk)
sorry,oracle9i不支持on update,用google搜索10g的新特性也没有找到相关信息。
主键是不能重复的