【发布时间】:2015-05-09 20:36:48
【问题描述】:
我们有下表
table1: 公司
id_pk | name
------+-------
1 | company1
2 | company2
3 | newcompany
id是主键
table2:玩具
id_pk | name_pk
------+-------
1 | toy1
2 | toy2
表2使用表1的主键作为其主键的一部分,
table3:客户
Cid_pk | name_fk | id_fk
-------+----------+------
1x | toy1 | 1
2x | toy2 | 2
表 3 使用表 2 的主键、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
我该怎么做?我应该使用更新级联吗?谢谢!
【问题讨论】:
-
也许显示您想要的结果会有所帮助。事实上,很难理解你的意图。为什么要将 Toys 表中的所有 id 更新为 3?主键必须是唯一的。
-
@sgeddes 我编辑了我的问题 :)
-
我认为您需要更好地了解您要完成的工作。主键是每一行的唯一标识符。使它们相同是没有意义的-您根本无法这样做,而且我不确定您为什么要这样做。
标签: mysql sql postgresql