似乎有两种方法,第一种是这样的:
$result = mysql_query("SHOW TABLE STATUS LIKE 'table_name'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);
$sql = mysql_query("INSERT the information you want in the main table")
然后,您可以在所有相关表中插入 $nextid 作为外键。
另一种方法使用最后插入 id:
START TRANSACTION;
INSERT INTO files (file_id, url) VALUES (NULL, 'text.doc');
INSERT INTO grades (file_id, grade) VALUES (LAST_INSERT_ID(), 'some-grade');
COMMIT;
这两个线程都是安全的吗?IE,如果我有两个 php 脚本同时运行两个 mysql 线程,并且它们同时插入到主表中,相关联的表会收到正确的主 id 外键还是会发生混淆或冲突?
谢谢。