mysql分布式主键

时间:2015-09-15 11:36:33

标签: mysql primary-key distributed-database

我有不同的表需要共享一个主键池。

  

E.g。表A具有主键0至9,表B具有主键10至   19。

有没有办法告诉mysql从哪里绘制主键?像存储过程一样?执行一个知道桶分布的脚本就足够了。

一种天真的方法是在每个insert语句中设置主键。 PK来自该池。实际上,这需要在每个应用程序(如php或java)中实现,这些应用程序将插入到我想要避免的数据库中。

1 个答案:

答案 0 :(得分:1)

我不明白为什么表需要共享主键。

您的描述已经背叛了一个问题。主键应该没有意义(或者,最多可以指示插入顺序)。不应为不同目的分配特定范围。

相反,每个表都可以拥有自己的自动增量ID。一种可能性是让另一个表具有自动递增的id,并使用对该表的外键引用。缺点是你需要为每个insert插入两个表 - 触发器可以很容易地做到这一点。

而不是主键的“范围”,您应该有一个显式类型。