2016-10-09 1 views
0

私はフォーラムに初めて参加しました。次の問題があります。リーステーブルの場所を削除した後にテーブルフィルムに入り、しかし、別のレジスターのテーブルの場所に映画のコードがある場合、私はまだテーブルフィルムの列の状態をリースしたままにします。どうすればいいですか?どうすればバリデーションでこのトリガーを削除できますか

私を助けてください、私はテーブルの画像を投稿したかったが、私はフォーラムに新しいよ、私は

TRIGGER `tguDelete` AFTER DELETE ON `locations` FOR EACH ROW UPDATE movies SET situation = 'available' WHERE code_location = OLD.code_location 

をやったものです!

私はphpMyAdminのを使用して、私は

答えて

1

をMySQLへの新しいです私はあなたのトリガ定義は、いくつかの作業が必要だと思います。たとえば、AFTERDELETE操作をlocationsテーブルに実行する "trigger function"を宣言したいとします。これは、あなたがそれを行うことができる方法である。

DROP TRIGGER IF EXISTS `tguDelete`; 
DELIMITER $$ 
CREATE TRIGGER `tguDelete` AFTER DELETE ON `locations` 
FOR EACH ROW 
-- condition for rows for which the trigger would fire WHEN (OLD.code_location <> 0) 
-- DECLARE 
    -- if you had things you wanted to declare 
BEGIN 
    -- here you do the updating of the movies table: 
    UPDATE movies SET situation = 'available' WHERE code_location = OLD.code_location; 
END;$$ 
DELIMITER ; 

あなたはDELIMITERS(すなわち:PHPMyAdminの)を必要としない場合は、そのよう

DROP TRIGGER IF EXISTS `tguDelete`; 
CREATE TRIGGER `tguDelete` AFTER DELETE ON `locations` 
FOR EACH ROW 
-- condition for rows for which the trigger would fire WHEN (OLD.code_location <> 0) 
-- DECLARE 
    -- if you had things you wanted to declare 
BEGIN 
    -- here you do the updating of the movies table: 
    UPDATE movies SET situation = 'available' WHERE code_location = OLD.code_location; 
END; 
+0

として、それらをスキップし、私はそう思うが、私はanから、それを自分自身を実行するときエラーが発生した場合 – Pr99

+0

質問を更新し、取得したエラーを追加してください。実際に使用していない場合は、トリガーが機能するかどうかを確認することができます。 – ishmaelMakitla

+0

#1064 - SQL構文に誤りがあります。正しい構文が 'WHEN(OLD.code_location <> 0)の近くで使用するように、MariaDBサーバーのバージョンに対応するマニュアルを確認してください。宣言 - 行1でdeaしたいことがある場合は – Pr99

関連する問題