是否可以确保相同的ID不会在2个表中出现两次?
例如,我有这个列:call id
我想确保它会在两个表中统计它
例如:calls_to_x
和calls_to_y
我想输入两个表数据,并确保call id
列将从两个表中增加,例如:
calls_to_x
:
呼叫ID:1参数:....时间:01:00:00
呼叫ID:3参数:....时间:01:30:00
calls_to_y
:
呼叫ID:2参数:....时间:01:10:00
呼叫ID:4个参数:....时间:01:34:00
答案 0 :(得分:1)
答案取决于您使用的RDBMS。
对于MySQL:
如果您只需要唯一值(而非顺序),则可以使用类似UUID的内容来唯一标识每一行。
如果确实需要值是顺序的,可以通过指定内容类型的字段将表合并到一个表中,或者使用第三个表来跟踪使用id字段的已使用id和该列的auto_increment 。如果需要,第二列可以跟踪哪个表使用了id。您可以在SQL函数中插入该表并返回LAST_INSERT_ID()的值以获取其他表的下一个ID。
对于大多数其他RDBMS
答案 1 :(得分:1)
另一种选择是拥有一个具有callid的AllCalls表,然后在收件人中将该id作为外键包含在两个表中的任何一个中。只有不同的字段可以在calls_to_x和calls_to_y表中,通常适用于任何调用的内容都可以在AllCalls表中。