MySQL Update逐步匹配所有表的列

时间:2016-08-05 14:38:14

标签: sql mysqli

我想知道一个SQL查询,它会逐步更新所有表上的匹配列,无论我是否设置了第一个值。

Table A
`ACCOUNT_NO` = 10090
`ACCOUNT_NO` = 10091

Table B
`ACCOUNT_NO` = 10090
`ACCOUNT_NO` = 10091

Table C
`ACCOUNT_NO` = 10090
`ACCOUNT_NO` = 10091

改为---

Table A
`ACCOUNT_NO` = 12090
`ACCOUNT_NO` = 12091

Table B
`ACCOUNT_NO` = 12090
`ACCOUNT_NO` = 12091

Table C
`ACCOUNT_NO` = 12090
`ACCOUNT_NO` = 12091

1 个答案:

答案 0 :(得分:1)

如果您的ID由声明为on update cascade的外键连接(请参阅文档here),那么您可以更新主表中的值,它们将传播到其他表:

update a
    set account_no = account_no + 2000;

如果新数字与旧数字冲突,反过来可能会产生错误。如果它发生,有很多方法。

解释说,这样的操作高度可疑。可能有一些非常罕见的例子,这是必要的,但一般来说,不应修改主键。如果正在修改列,则它是实体的属性,而不是实体的标识符