2016-10-25 4 views
0

に追加のSQLティガーの追加は:私は正常に動作し、以下のSQL UPDATEトリガを持っている既存のトリガ

BEGIN 
DECLARE myID INT; 

SELECT user_id INTO myID FROM writer WHERE writer_id = NEW.writer_id; 

IF (NEW.status_id = 2) THEN 
    INSERT INTO activity (
     user_id, 
     work_id, 
     activity, 
     date_created 
    ) VALUES (
     myID, 
     NEW.work_id, 
     'confirmed', 
     now() 
    ); 
ELSE 
    INSERT INTO activity (
     user_id, 
     work_id, 
     activity, 
     date_created 
    ) VALUES (
     myID, 
     NEW.work_id, 
     'modified', 
     now() 
    ); 

END IF; 
END 

私は次のような追加のトリガーを追加する必要があります。

CREATE TRIGGER updateWorkStatus AFTER UPDATE ON writer_split 
FOR EACH ROW 
    BEGIN 
    UPDATE work a 
     JOIN writer_split b 
     ON a.work_id = b.work_id AND a.current_version = b.version 
    SET a.status_id = 2 
    WHERE a.work_id NOT IN (
     SELECT ab.work_id 
     FROM (SELECT s.work_id 
      FROM work w INNER JOIN writer_split s 
       ON w.work_id = s.work_id AND s.status_id != 2) ab 
    ); 
    END; 

私はこれを実行するとスクリプトを作成すると、構文エラーが発生します。何か案は?

答えて

0

私にとって私はUPDATE work as a

+0

感謝を使用します - 私が試したので、これは私のSequelPROクライアント(MacOSの)をクラッシュ続けているようですし、時折DBに接続するアプリケーションをクラッシュします。何かご意見は? – nobles

関連する問題