MySQL有1个主键,可自动增加2个表

时间:2014-08-18 19:06:35

标签: php mysql key primary-key

我有两张桌子' table1 '& ' table2 ',都有名为“ id ”的列(主键),两者都有自动增量。问题是如何使两个表的主键可行。

实施例: 我在' table1 '中输入id' 100 ',之后如果我尝试在' table2 '中输入新记录,我就会' “ table2

中的 101 '

我认为'外键'会完成这项工作,但它与我需要的完全相反

1 个答案:

答案 0 :(得分:0)

严格地说,如果不诉诸额外的查询或额外的锁定,就无法做你所描述的事情。

您可以通过创建第三个表来模拟它,在其中插入以生成新的ID,然后使用LAST_INSERT_ID()插入table1或table2。请参阅How to have Unique IDs across two or more tables in MySQL?

中的示例

另请参阅流行的MySQL性能博客中的此问题和解决方案的一些讨论:Sharing an auto_increment value across multiple MySQL tables

但我同意@Barmar的评论,这可能表明数据库的设计不好。如果您需要在多个表中使自动增量PK唯一,这可能意味着这两个表应该是一个表。