ホームページ >データベース >mysql チュートリアル >MySQL で複数のテーブルに同時にデータを挿入するにはどうすればよいですか?
このシナリオの目標は、訪問と登録という 2 つのテーブルにデータを同時に挿入することです。通常、単一の INSERT ステートメントで 1 つのテーブルにデータを挿入できますが、この場合は不可能です。
この課題に対処するには、2 つの実行可能なオプションがあります。
1.バッチ挿入:
挿入を 2 つの異なる INSERT ステートメントに分割し、バッチとして実行します。この方法では、次のように EXECUTE コマンドを使用します。
START TRANSACTION; INSERT INTO visits (visit_id, card_id) VALUES (NULL, 12131141); INSERT INTO registration (registration_id, type, timestamp, visit_id) VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID()); COMMIT;
2.ストアド プロシージャ:
2 つの INSERT ステートメントをカプセル化するストアド プロシージャを作成します。これにより、1 回のプロシージャ呼び出しで両方の挿入を実行できるようになります。次の例を考えてみましょう。
CREATE PROCEDURE insert_into_multiple_tables( IN visit_card_id INT, IN registration_type ENUM('in', 'out') ) BEGIN # Insert into `visits` table INSERT INTO visits (visit_id, card_id) VALUES (NULL, visit_card_id); # Insert into `registration` table INSERT INTO registration (registration_id, type, timestamp, visit_id) VALUES (NULL, registration_type, UNIX_TIMESTAMP(), LAST_INSERT_ID()); END;
ストアド プロシージャを呼び出すには、次の構文を使用します。
CALL insert_into_multiple_tables(12131141, 'in');
バッチ挿入メソッドとストアド プロシージャ メソッドは両方とも、複数のファイルにデータを挿入するための信頼できる方法を提供します。テーブル。この 2 つのどちらを選択するかは、特定のアプリケーション要件とパフォーマンスの考慮事項によって異なります。
以上がMySQL で複数のテーブルに同時にデータを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。