【问题标题】:MYSQL: How to update uuid in multiple tablesMYSQL:如何更新多个表中的 uuid
【发布时间】:2015-02-12 20:18:20
【问题描述】:

我有 2 张桌子:

table1
-UUID Id
-CHAR NAME

table2
-UUID Id
-UUID table1Id (foreign key for table1 Id)
-CHAR CHILD_INFO

我需要将这 2 个表的 ID 更新为新的 UUID。 (出于某种复制原因) 如何通过一次更新来做到这一点(1)将 talbe1 Id 更改为新的,2)在 talbe2 table1Id 中更改此外部 id? 附言我们不能在外部约束中使用级联,因为某处使用了多态关系。

【问题讨论】:

    标签: mysql sql-update foreign-keys hierarchy guid


    【解决方案1】:

    我通过这样的查询找到了这个问题的解决方案:

    SET foreign_key_checks = 0;
    
    UPDATE table1 as t1
    join (select uuid() as newId, Id from table1) as ut1 on t1.Id = ut1.Id
    LEFT join table2 as t2 on t1.Id = t2.table1Id
    SET t1.Id = ut1.newId, t2.table1Id = ut1.newId;
    
    SET foreign_key_checks = 1;
    

    因此,您需要使用 Left Join 连接子表并进行复杂的更新。

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 1970-01-01
      • 2010-09-05
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多