0

是否可以确保相同的 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

4

2 回答 2

1

答案取决于您使用的 RDBMS。

对于 MySQL:

如果您只需要唯一值(而不是顺序值),则可以使用UUID之类的东西来唯一标识每一行。

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

对于大多数其他 RDBMS

使用序列 (CREATE SEQUENCE)

于 2013-01-06T16:23:25.850 回答
1

另一种选择是拥有一个 AllCalls 表,它有一个 callid,然后在接收者处将此 id 作为外键包含在两个表中的任何一个中。只有不同的字段可以在calls_to_x 和calls_to_y 表中,一般适用于任何呼叫的东西都可以在AllCalls 表中。

于 2013-01-06T16:30:35.580 回答