2016-04-11 9 views
0

私がしたいのは、historiqueテーブルのmessageカラムのmcorrテーブルにあるOLD.codeMaint変数です。 しかし、私は、テーブルを変更しようとすると、私が得たものはすべて、このエラーです:trigger truncated不正なDOUBLE値

Truncated incorrect DOUBLE value: 'MC35'. 

ところでMC35は、行の私は、これは

DELIMITER @@ 
DROP TRIGGER IF EXISTS 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 ('a achevé la Maintenance '+ OLD.codeMaint , CURRENT_USER(), NOW()); 
    END IF; 

END @@ 
DELIMITER ; 
私のトリガーコードで主キー

を変更したいされていることMySQLでは

答えて

1

、1は文字列を連結するconcat()を使用しています。

DELIMITER @@ 
DROP TRIGGER IF EXISTS 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() 
        ); 
    END IF; 

END @@ 

DELIMITER ; 
+0

thanx、あなたは私の一日を保存しました:D – Bashir

0

Mysqlは+を文字列連結演算子として認識しません。 concat()関数を使用するか、pipes_as_concat SQLモードを有効にした場合は、||演算子を使用して文字列を連結できます。

関連する問題