【问题标题】:how to update a primary key in Sql?如何更新Sql中的主键?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多