Кажется, есть два способа для этого, первый из них выглядит следующим образом:
$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 в качестве внешнего ключа во все связанные таблицы.
Другой метод использует последний идентификатор вставки:
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 одновременно, и они одновременно вставляются в основную таблицу, получат ли связанные таблицы правильный внешний первичный ключ первичного идентификатора или может быть смешение или коллизия?
Спасибо.