Функция MySQL LAST_INSERT_ID()
, различные привязки (например, PDO) и базовая функциональность являются детерминированными. Вы можете использовать их с уверенностью.
Например, это является детерминированным и будет работать везде.
INSERT INTO master (address, town) VALUES('150 Broadway', 'New York');
INSERT INTO detail (master_id, item) VALUES (LAST_INSERT_ID(), 'pepperoni pizza');
Это не так. Это то, против чего вас предупреждают.
INSERT INTO master (address, town) VALUES('150 Broadway', 'New York');
SELECT @id := MAX(master_id) FROM master; /* bad bad bad */
INSERT INTO detail (master_id, item) VALUES (@id + 1 'pepperoni pizza');