3
DELIMITER $$

CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `ir_db1407`.`after_update_ind_user` AFTER UPDATE
ON `ir_db1407`.`ind_user`
FOR EACH ROW BEGIN
SET @user_id=OLD.id
IF (NEW.STATUS = '2' OR NEW.STATUS ='3') 
THEN 
 DELETE FROM ind_user_events WHERE user_id = @user_id;
 DELETE FROM ind_user_mobile WHERE user_id = @user_id;
END IF;
END$$

DELIMITER;

エラー コード : 1064 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、near 'if (new.status = '2' or new.status ='3') then delete from ind_user_events Wh' を 7 行目で使用する正しい構文を確認してください。

4

1 に答える 1

2

変化する

SET @user_id=OLD.id

SET @user_id=OLD.id;
                   ^

実際には、この変数さえ必要ありません。だからその行を捨てて試してください

...
IF (NEW.STATUS = '2' OR NEW.STATUS ='3') THEN 
  DELETE FROM ind_user_events WHERE user_id = OLD.id;
  DELETE FROM ind_user_mobile WHERE user_id = OLD.id;
END IF;
...
于 2013-05-24T06:44:44.027 に答える