我有不同的表,需要共享一个主键池。
例如,表A的主键为0到9,表B的主键为10至19。
有没有办法告诉mysql从哪里画主键?就像一个存储过程?执行一个知道存储桶的分布的脚本就足够了。
一种简单的方法是在每个insert语句中设置主键。PK是从那个池中提取的。实际上,这需要在插入到DB中的每个应用程序(如php或java)中实现,而我希望避免这些应用程序。
发布于 2015-09-15 11:40:04
我不明白为什么表需要共享主键。
你的描述已经暴露了一个问题。主键应该是无意义的(或者最多可以指示插入顺序)。不应为不同的目的分配特定的范围。
相反,每个表都可以有自己的自动递增id。一种可能是有另一个具有自动递增id的表,并使用对该表的外键引用。缺点是您需要为每个insert插入两个表--触发器可以很容易地做到这一点。
您应该有一个显式类型,而不是主键的“范围”。
https://stackoverflow.com/questions/32585052
复制相似问题