1

あるデータベース テーブルに新しい行を挿入し、いくつかの条件に基づいて別のデータベース テーブルの既存の行を更新するには、SQL ステートメントが必要です。

これを行う方法はありますか?1 つの SQL ステートメントで 1 つのテーブルに行を挿入し、別のデータベース テーブルの行を更新するには?

前もって感謝します!

4

4 に答える 4

4

はい、それらはTransactionsSTART TRANSACTION and COMMIT/ROLLBACKと呼ばれ、次のようなもので実装されます。

START TRANSACTION;
  INSERT INTO ...
  UPDATE table2 SET name='TOTO' WHERE type=1;
COMMIT;

編集

これは実際には1 つのSQL クエリではありませんが、操作はアトミックに行われます。それが必要なことだと思います。

于 2011-10-07T09:28:59.007 に答える
3

1 つの SQL ステートメントで、複数ではなく 1 つのテーブルを更新できます。そのステートメントが の場合、MERGE挿入/更新/削除アクションを指定できますが、同じ 1 つのターゲット テーブルのみを対象としています。

一貫性だけが必要な場合は、トランザクションを使用してください。トランザクションがコミットされるまで、トランザクション内の変更は外部から見えません。

1 回の更新 (ユーザーが制御できない) によって調整された挿入が行われるようにする場合はon update、更新されるテーブルでトリガーを使用します。トリガーは、適切な行を他のテーブルに挿入します。

于 2011-10-07T09:29:18.327 に答える
1

はい、ストアド プロシージャで可能です。

これを見る:ストアド プロシージャ

于 2011-10-07T09:29:24.910 に答える
1

Trigger最初のテーブルの挿入時に2番目のテーブルを更新するために使用できます

于 2011-10-07T09:28:59.440 に答える