guiqian145 发表于 2007-12-30 10:27

这个SQL语句该如何写

[bold]我想修改身份证号码,因为数据库中有很多表中有该字段,所以我想问:::

我该怎样写SQL语句能够 一次性把数据库中有 身份证号码 字段的表的身份证号码修改掉!!
谢谢!!![/bold][color=Cyan][/color]

guiqian145 发表于 2007-12-31 08:37

顶顶顶顶顶..........................................!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Kettyjin1983 发表于 2007-12-31 10:26

个人感觉应该没办法写一次SQL就可以的吧,应该要写存储过程吧,等高手吧。

turbo280 发表于 2008-1-3 19:51

我感觉也是,一次性修改掉那是没办法吧。。也许高手行

Kendy123456 发表于 2008-1-3 20:51

我认为理论上是没办法的。

如果用存储过程,可以使用游标查找系统表  找出每张含有身份证字段的表的名字,然后拼写SQL语句update掉身份证号码。 但是 这只是自动拼写update语句而已,并不是楼主说想的一次性的把所有的表都update掉了,实质上还是用循环的方式一张表一张表去修改的。

其实我觉得这个问题意义不大,就算用手一条一条的写update语句 也很快就完成了

dingpin 发表于 2008-1-3 20:59

一个一个表的update吧,我认为...
只不过是改一个表名而已
期待高手......

tillere007 发表于 2008-1-4 10:28

有难度,关注!

西风独自凉 发表于 2008-1-4 10:49

除了一個個修改,應該沒有別的辦法
循環或許是最好的辦法

bygg 发表于 2008-1-4 11:49

设计上的错误。。。。

wyg4859 发表于 2008-1-4 14:29

貌似
for(){
    $sql = "UPDATE AA a,BB b,CC c SET a.id = b.id = c.id = 123423 WHERE a.id = 43243";
}
不知道行不行

jxzyh1 发表于 2008-1-18 15:03

可以使用触发器实现

provoke 发表于 2008-1-20 15:11

用触发器可以实现,不过最好的办法还是:
设置外键,级联更新,这样更新时只需更新主键表,所有参照该主键表的外键都将自动更新。
看来楼主好像是没学过数据库的。

页: [1]

编程论坛