我想在两个MySQL表中自动递增id(如果第一个表中有id=4,那么第二个表中不能有id=4)。我的问题是我怎样才能以最好的方式做到这一点?
最佳答案
您需要的是外部生成的序列并将其链接到您的 2 个表
你应该看看 flickr 做了什么,看看这个链接:http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/
您创建生成 id 的表:
CREATE TABLE `Tickets64` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`stub` char(1) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `stub` (`stub`)
) ENGINE=MyISAM
并获取您创建的新 ID,如下所示:
REPLACE INTO Tickets64 (stub) VALUES ('a');
SELECT LAST_INSERT_ID();
Twitter 最近也做了一个名为 Snowflake 的东西,你应该看看他们的 github 存储库
不过主要看flickr做的,比较简单,好操作
关于sql - 多个表中的唯一 ID [MySQL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030254/