Mysql 在表触发器中强制转换new.value时出现语法错误
有什么问题吗Mysql 在表触发器中强制转换new.value时出现语法错误,mysql,triggers,syntax-error,Mysql,Triggers,Syntax Error,有什么问题吗 DELIMITER ;; CREATE TRIGGER `UPD_after_financialStatus` AFTER UPDATE ON `financialStatus` FOR EACH ROW BEGIN DECLARE `@grossAmountTillNow` varchar(100); SET @grossAmountTillNow = CONCAT( CAST(OLD.grossAmountTillNow AS varchar(50)), "-
DELIMITER ;;
CREATE TRIGGER `UPD_after_financialStatus` AFTER UPDATE ON `financialStatus`
FOR EACH ROW
BEGIN
DECLARE `@grossAmountTillNow` varchar(100);
SET @grossAmountTillNow = CONCAT(
CAST(OLD.grossAmountTillNow AS varchar(50)),
"---",
CAST(NEW.grossAmountTillNow AS varchar(50)));
...
它说,'varchar(50)),“--”,CAST(NEW.grossAmountTillNow AS varchar(50))附近出现语法错误;在第4行设置@grossAmoun
您能帮忙吗?请比较:
SELECT CAST(CURRENT_TIMESTAMP AS VARCHAR(50))
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“VARCHAR(50))”附近使用的正确语法
2012-04-10 12:30:29
允许值的解释见。请比较:
SELECT CAST(CURRENT_TIMESTAMP AS VARCHAR(50))
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“VARCHAR(50))”附近使用的正确语法
2012-04-10 12:30:29
有关允许的值的说明,请参见。您确定可以在
CAST
中使用varchar
?根据你不能…@Marco,我们可以在触发器中使用CAST()
@diEcho:是的,但是根据手册,IMHOvarchar
不是有效的dest类型。grossamounttillow
的数据类型是什么?试着写CHAR(50)
而不是varchar(50)
您确定可以在CAST
内部使用varchar
吗?根据你不能…@Marco,我们可以在触发器中使用CAST()
。@diEcho:是的,但是根据手册,IMHOvarchar
不是有效的dest类型。grossAmountTillNow
的数据类型是什么?试着写CHAR(50)
而不是varchar(50)