トランザクションを使用した複数の MySQL テーブルへの挿入
単一の MySQL クエリを使用して複数のテーブルにデータを挿入することは、直接には可能ではありません。ただし、同じ結果を達成するためのより良い方法があります。
トランザクションの使用
トランザクションを使用すると、複数の MySQL ステートメントを 1 つの作業単位にグループ化できます。トランザクション内のいずれかのステートメントが失敗した場合、トランザクション全体がロールバックされ、データの整合性が確保されます。トランザクションを使用して複数のテーブルにデータを挿入する方法は次のとおりです。
BEGIN; INSERT INTO users (username, password) VALUES ('test', 'test'); INSERT INTO profiles (userid, bio, homepage) VALUES (LAST_INSERT_ID(), 'Hello world!', 'http://www.stackoverflow.com'); COMMIT;
その他の考慮事項
INSERT ... SELECT LAST_INSERT_ID() INTO @mysql_variable_here; INSERT INTO table2 (@mysql_variable_here, ...);
警告
トランザクションを使用する場合、プロセス中に実行が中断された場合の結果を考慮することが重要です。 1 つのテーブルで部分的な挿入や行の欠落が許容できない場合は、プロセス全体をトランザクションでラップする必要があります。
以上がトランザクションを使用して複数の MySQL テーブルにデータを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。