是否可以确保相同的ID不会在2个表中出现两次(数据库)

时间:2013-01-06 16:16:18

标签: mysql database

是否可以确保相同的ID不会在2个表中出现两次? 例如,我有这个列:call id 我想确保它会在两个表中统计它 例如:calls_to_xcalls_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

2 个答案:

答案 0 :(得分:1)

答案取决于您使用的RDBMS。

对于MySQL:

如果您只需要唯一值(而非顺序),则可以使用类似UUID的内容来唯一标识每一行。

如果确实需要值是顺序的,可以通过指定内容类型的字段将表合并到一个表中,或者使用第三个表来跟踪使用id字段的已使用id和该列的auto_increment 。如果需要,第二列可以跟踪哪个表使用了id。您可以在SQL函数中插入该表并返回LAST_INSERT_ID()的值以获取其他表的下一个ID。

对于大多数其他RDBMS

使用sequence (CREATE SEQUENCE)

答案 1 :(得分:1)

另一种选择是拥有一个具有callid的AllCalls表,然后在收件人中将该id作为外键包含在两个表中的任何一个中。只有不同的字段可以在calls_to_x和calls_to_y表中,通常适用于任何调用的内容都可以在AllCalls表中。