我想要做的就是在historique Table的message列中包含mcorr表中的OLD.codeMaint变量。 但是当我尝试修改表时,我得到的就是这个错误:
Truncated incorrect DOUBLE value: 'MC35'.
btw 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 ;
答案 0 :(得分:2)
在MySQL中,使用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 ;
答案 1 :(得分:0)
Mysql不识别+作为字符串连接运算符。使用concat()
函数或者如果启用pipes_as_concat sql模式,则可以使用||
运算符来连接字符串。