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

标签 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

最佳答案

答案取决于您使用的 RDBMS。

对于 MySQL:

如果您只需要唯一值(而不是连续值),则可以使用类似 UUID 的值。唯一标识每一行。

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

对于大多数其他 RDBMS

使用 sequence (CREATE SEQUENCE) .

关于mysql - 是否可以确保相同的 ID 不会在 2 个表(数据库)中出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184045/

相关文章:

MySql Dump 输出条件注释?执行转储作为查询以恢复数据库

php - 从 MySQL 中的子查询中抓取查询

database - 城市到大都市区

php - Symfony2 如何在多对多连接表中继承外键

php - 在选项卡中回显不同字段

php - MySQL更新表行,其中列等于php变量

MySQL 数据库在 Apache Solr 上建立索引,如何通过 URL 访问它

PHP SQL 内部 Join bool(false)

c# - 如何在C#中从mysql结果中读取某些数据

c++ - 将 MySQL 与 C++ 集成的简单解决方案?