2016-04-14 21 views
0

Ben tetikleyiciler uğraşıyorum, ben zam uygulaması hatası eklemek istiyorum, ama benim kod gösterir:zam uygulama hatası Tetik

Hata kodu 1064, SQL durumu 42000: Eğer SQL sözdizimi bir hata var ; Yakınında kullanmak için doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin '(-20000,' Ödeme, Texas asgari ücretinin altında! ');

END IF;

hattı 9

de

SON' ve zam uygulaması hatası bölümünü kaldırırsanız, söz konusu mükemmel çalışıyor.

Tetik:

DELIMITER @@ 
DROP TRIGGER IF EXISTS gmtt.after_update_mcorr @@ 

CREATE TRIGGER gmtt.after_update_mcorr 
AFTER UPDATE ON gmtt.mcorr 
FOR EACH ROW 
BEGIN 
     IF OLD.etat = '0' AND NEW.etat = '1' THEN 
      INSERT INTO historique(message, User, dateHisto) VALUES (CONCAT('a achevé la Maintenance ', OLD.codeMaint) , CURRENT_USER(), NOW()); 
     ELSE 
raise_application_error(-20000,'Pay is below Texas minimum wage!');  

    END IF; 

    END @@ 
DELIMITER ; 

cevap

2

Kişisel sözdizimi MySQL gibi görünüyor. Ve yine, raise_application_error bir Oracle yapısıdır.

DELIMITER @@ 
DROP TRIGGER IF EXISTS gmtt.after_update_mcorr @@ 
CREATE TRIGGER gmtt.after_update_mcorr 
AFTER UPDATE ON gmtt.mcorr 
FOR EACH ROW 
BEGIN 
    IF OLD.etat = '0' AND NEW.etat = '1' THEN 
     INSERT INTO historique(message, User, dateHisto) 
      VALUES (CONCAT('a achevé la Maintenance ', OLD.codeMaint) , CURRENT_USER(), NOW()); 
    ELSE 
     signal sqlstate -20000 set msgtext = 'Pay is below Texas minimum wage!';  
    END IF; 
END @@ 
DELIMITER ; 
: Sen signal istiyorum here belgelenmiş