単一のステートメントを使用して値を挿入し、トランザクションにラップします(例:
)。START TRANSACTION;
INSERT INTO person VALUES ('joe', 50);
INSERT INTO hobbies VALUES (LAST_INSERT_ID(),'golf');
COMMIT;
パフォーマンスがわずかに低下する可能性がありますが、これにより一貫した結果が得られるはずです。 LAST_INSERT_ID()
によって返される値をインクリメントする AUTO INCREMENT
を変更した同時挿入があった可能性があるため、安全ではありません。 価値。