ホームページ >データベース >mysql チュートリアル >MySQL で複数のテーブルに同時にデータを挿入するにはどうすればよいですか?

MySQL で複数のテーブルに同時にデータを挿入するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 21:35:03656ブラウズ

How to Insert Data into Multiple Tables Simultaneously in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。