ホームページ > データベース > mysql チュートリアル > トランザクションを使用して複数の MySQL テーブルにデータを挿入するにはどうすればよいですか?

トランザクションを使用して複数の MySQL テーブルにデータを挿入するにはどうすればよいですか?

DDD
リリース: 2024-12-15 00:02:12
オリジナル
861 人が閲覧しました

How Can I Insert Data into Multiple MySQL Tables Using Transactions?

トランザクションを使用した複数の 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;
ログイン後にコピー
  • BEGIN ステートメントはトランザクションを開始します。
  • 後続の INSERT ステートメントはユーザーとプロファイルにデータを挿入します。 tables.
  • LAST_INSERT_ID() は、users テーブルから自動生成された ID を取得し、それが使用されます
  • COMMIT ステートメントはトランザクションを終了し、変更を永続的にします。

その他の考慮事項

  • MySQL 変数への最後の挿入 ID の保存:後続のクエリで使用するための MySQL 変数内の LAST_INSERT_ID()。次の構文を使用します:
INSERT ...
SELECT LAST_INSERT_ID() INTO @mysql_variable_here;
INSERT INTO table2 (@mysql_variable_here, ...);
ログイン後にコピー
  • 最後の挿入 ID を PHP 変数に保存する: mysql_insert_id() や mysql_insert_id() などの PHP 関数を使用して LAST_INSERT_ID() をフェッチできます。 PHPに保存するvariable.

警告

トランザクションを使用する場合、プロセス中に実行が中断された場合の結果を考慮することが重要です。 1 つのテーブルで部分的な挿入や行の欠落が許容できない場合は、プロセス全体をトランザクションでラップする必要があります。

以上がトランザクションを使用して複数の MySQL テーブルにデータを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート