ホームページ >データベース >mysql チュートリアル >MySQL トリガーを使用して別のテーブルからデータを削除した後に、あるテーブルからデータを正しく削除するにはどうすればよいですか?

MySQL トリガーを使用して別のテーブルからデータを削除した後に、あるテーブルからデータを正しく削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 16:25:03431ブラウズ

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

MySQL トリガー: あるテーブルから削除した後に別のテーブルから削除する

問題:

テーブル 1 (パトロン) から行が削除されるたびに、テーブル 2 (patron_info) から行を自動的に削除するトリガーを作成したいと考えています。ただし、トリガーの作成時に構文エラーが発生します。

解決策:

エラーは、トリガー内の DELETE ステートメントの構文が間違っていることが原因である可能性があります。 。具体的には、次のトリガーに従って、patrons.id の代わりに old.id を使用して、削除された行の ID を参照する必要があります。

<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END</code>

必ず ; を含めてください。

さらに、コンソール ウィンドウにトリガー コードを入力するときは、必ず区切り文字を使用してください。たとえば、

<code class="sql">DELIMITER $

CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END$

DELIMITER ;

$</code>
のように $ を区切り文字として使用できます。

以上がMySQL トリガーを使用して別のテーブルからデータを削除した後に、あるテーブルからデータを正しく削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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