首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL奇偶自递增ID

MySQL奇偶自递增ID
EN

Stack Overflow用户
提问于 2015-06-19 08:53:29
回答 2查看 609关注 0票数 0

我在MySQL有两张桌子。两个表存储的内容完全相同,只有一个表存储非最终数据(稍后将更改)和一个表存储最终数据。

代码语言:javascript
复制
NotFinal Table
----------------------
ID ParentID  Value
1     2       0.5
2     2       0.3

代码语言:javascript
复制
Final Table
----------------------
ID ParentID  Value
1     1       0.5
2     2       0.3
3     2       0.4

现在,问题是,我想选择所有具有ID的实体的ParentID = 2,这与从哪个表中选择无关。如果我从它们的联接中选择,那么我将得到1,2,2,3,在这种情况下,ID 2是重复的(ID 2在第一和第二表中都有ParentID 2)。

因此,实际的问题是I不知道ID来自哪个表来自。为了解决这个问题,我在非最终表中认为只有odd I,而在最后一个表中只有even I。这样做永远不会产生冲突的ID,我将始终知道哪个ID来自哪个表。

我是否可以设置MySQL自动增量,使第一个表中的ID为奇数,而第二个表中的ID为偶数?

所以桌子看起来是这样的:

代码语言:javascript
复制
NotFinal Table
----------------------
ID ParentID  Value
1     2       0.5
3     2       0.3

代码语言:javascript
复制
Final Table
----------------------
ID ParentID  Value
2     1       0.5
4     2       0.3
6     2       0.4
EN

回答 2

Stack Overflow用户

发布于 2015-06-19 09:19:35

您可以使用配置选项auto_increment_incrementauto_increment_offset,如MySQL手册中所述。

它们的主要用途是复制,但由于它们也可以在每个会话中更改,因此您可以将它们用于您的目的。在操作这两个表之前,只需根据需要设置它们(只更改会话变量,而不是全局变量)。

票数 1
EN

Stack Overflow用户

发布于 2015-06-19 08:57:47

为什么不把它们放在同一张桌子上呢?添加一个名为IS_FINAL的额外整数列,该列可以设置为1或0。将非最终记录设置为0,对最终记录设置为1。这将是解决这个问题的一种更清洁的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30933921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档