Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        3年前关闭。
                                                                                            
                
        
我想知道一个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

最佳答案

如果您的ID是通过声明为on update cascade的外键连接的(请参见文档here),则可以更新主表中的值,它们会传播到其他表:

update a
    set account_no = account_no + 2000;


如果新数字与旧数字发生冲突,则可能会产生错误。如果发生这种情况,有多种解决方法。

在解释了这一点之后,这种操作就高度可疑。可能有一些非常罕见的示例,其中有必要这样做,但通常不应修改主键。如果要修改列,则它是实体的属性,而不是实体的标识符。

关于mysql - MySQL Update逐步匹配所有表上的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38791888/

10-12 02:33