我在MySQL有两张桌子。两个表存储的内容完全相同,只有一个表存储非最终数据(稍后将更改)和一个表存储最终数据。
NotFinal Table
----------------------
ID ParentID Value
1 2 0.5
2 2 0.3。
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为偶数?
所以桌子看起来是这样的:
NotFinal Table
----------------------
ID ParentID Value
1 2 0.5
3 2 0.3。
Final Table
----------------------
ID ParentID Value
2 1 0.5
4 2 0.3
6 2 0.4发布于 2015-06-19 09:19:35
您可以使用配置选项auto_increment_increment和auto_increment_offset,如MySQL手册中所述。
它们的主要用途是复制,但由于它们也可以在每个会话中更改,因此您可以将它们用于您的目的。在操作这两个表之前,只需根据需要设置它们(只更改会话变量,而不是全局变量)。
发布于 2015-06-19 08:57:47
为什么不把它们放在同一张桌子上呢?添加一个名为IS_FINAL的额外整数列,该列可以设置为1或0。将非最终记录设置为0,对最终记录设置为1。这将是解决这个问题的一种更清洁的方法。
https://stackoverflow.com/questions/30933921
复制相似问题