ホームページ >データベース >mysql チュートリアル >MySQL トリガーを使用して別のテーブルからデータを削除した後に、あるテーブルからデータを正しく削除するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。