如何在Sql中更新主键?

时间:2015-05-09 20:36:49

标签: mysql sql postgresql

我们有下表

表1:公司

id_pk | name
------+------- 
1     | company1
2     | company2
3     | newcompany

id是主键

表2:玩具

id_pk | name_pk  
------+-------
1     | toy1
2     | toy2

表2使用表1的主键作为其主键的一部分

表3:客户端

Cid_pk  | name_fk | id_fk
-------+----------+------
1x     | toy1     | 1
2x     | toy2     | 2

表3使用table2,name和id

的主键作为外键

我必须将table2的所有条目更新为id = 3,但sql不允许我这样做。这是理想的结果:

id_pk | name_pk  
------+-------
3     | toy1
3     | toy2



Cid_pk  | name_fk | id_fk
-------+----------+------
1x     | toy1     | 3
2x     | toy2     | 3

我该怎么办?我应该使用更新级联吗?谢谢!

1 个答案:

答案 0 :(得分:0)

更新主键时删除外键,更新后再次添加foriegn键约束。