php - 从表#1 获取最新 ID 以确定表#2 的新 ID

标签 php mysql auto-increment multiple-tables

我有一个旧注册系统和一个新注册系统。 (两张 table )。
旧系统有一个旧类,新系统有一些旧系统还不能实现的新类。
因此,目前无法将所有内容都转移到其中一个系统中。

我的问题:
我需要连接这两个表,以便 ID 以“自动递增”的方式运行,并且会以某种方式相互跟随。

这是一个场景:
//表#1 = 旧系统(汽车)
//table#2 = 新系统(拖拉机、卡车、船舶)

一辆新车在表#1 中注册并获得 ID:13579,
然后一些其他车辆在 table#2 中注册并且应该获得 ID :13580,
当一辆新车再次在 table#1 中注册时,它的 ID 应该是:13581。
等等……

在我看来它是这样的:
在将新车辆添加到其中一个表之前,始终在另一个表中进行查找并检查哪个是最后一个/最高 ID 并在设置新 ID 之前执行 +1...

更新 20120614:
这是我想出的一个解决方案:

$qry_tbl1 = mysql_query('SELECT MAX(id) AS tbl1_max_id FROM tbl1');
$get_tbl1 = mysql_fetch_assoc($qry_tbl1); extract($get_tbl1);

$qry_tbl2 = mysql_query('SELECT MAX(id) AS tbl2_max_id FROM tbl2');
$get_tbl2 = mysql_fetch_assoc($qry_tbl2); extract($get_tbl2);

$new_max_id = max(array($tbl1_max_id,$tbl2_max_id)) + 1;

这不是一个好的解决方案,但却是我唯一可以使用的解决方案。
在用户点击提交按钮后,我立即执行此操作并插入一条新记录。 然后,根据 $new_max_id 在脚本的下方,我用附加数据更新该记录...

这是一个可以接受的解决方案吗?

最佳答案

我认为您可以使用这种方法。

或者你可以创建新表,包含这样的字段:

id(自增)、table_id、table_name

并保存到其中 table_id - 是您的表实体的 id,table_name - 是一些属性,用于确定该 id 属于哪个表。在选择过程中,您必须使用此表来确定要使用的 ID。这将避免 id 计算。

关于php - 从表#1 获取最新 ID 以确定表#2 的新 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992831/

相关文章:

javascript - 如何将变量从一个页面传递到另一个未链接的页面

php - $this ['key' ]->method() - 这是什么?

mysql - 如何对具有不同值但相同名称的主键进行分组并使用 datediff

php - 当你需要查询的结果作为参数时,你如何在 SQL 中进行 JOIN?

mysql - 在 HANA DB 上使用 UNION SELECT 和过滤器时如何获得更好的性能

MySQL 在没有 WHERE 的情况下删除后自动增加值

php - 您将如何使用 facebook php sdk 执行 `debug_token` 调用?

php - 消息:未定义的属性:Users::$form_validation

c# - 当 ID 字段 (PK) 自动递增时(带有 EF 的 MySQL),使用与之前相同的 Id 恢复已删除的记录

MYSQL 如何在MySql上添加自动递减计划?