2017-12-28 22 views
0
DELIMITER $$ 
CREATE TRIGGER arrange_serial 
AFTER DELETE ON db.table 
FOR EACH ROW 
BEGIN 
    UPDATE db.table set serial=serial-1 where serial > DELETED.serial; 
END$$ 
DELIMITER ; 

削除時にdb.DELETEDが存在しないというエラーが表示されます。誰かが私が間違っている場所を私に示唆することができますmysqlトリガの更新が機能しない

+0

ここでは、sqlserverとmysql(またはoracle)コードをマッシュアップしているようですが、mysqlではトリガを起動させるトリガでテーブルを操作できません。 –

答えて

0

削除された行の古い値を参照することになっています。 DELETEDの代わりにOLDを使用してください。

DELIMITER $$ 
CREATE TRIGGER arrange_serial 
AFTER DELETE ON db.table 
FOR EACH ROW 
BEGIN 
    UPDATE db.table set serial=serial-1 where serial > OLD.serial; 
END$$ 
DELIMITER ; 
関連する問題