2012-04-10 111 views
1

有任何問題:語法錯誤@鑄造new.value

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))); 
... 

它說Syntax error near 'varchar(50)),"---",CAST(NEW.grossAmountTillNow AS varchar(50))); SET @grossAmoun' at line 4
你能幫忙嗎?

+0

你確定你可以在'CAST'裏面使用'varchar'嗎?根據[手冊](http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast)你不能... – Marco 2012-04-10 10:33:20

+0

@Marco,我們可以使用'CAST() 'TRIGGER'裏面的內容' – diEcho 2012-04-10 10:35:53

+0

@diEcho:是的,但是恕我直言'varchar'根據手冊不是有效的dest類型... – Marco 2012-04-10 10:36:46

回答

1

請比較:

SELECT CAST(CURRENT_TIMESTAMP AS VARCHAR(50)) 

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在1號線

SELECT CAST(CURRENT_TIMESTAMP AS CHAR(50)) 

2012-04-10 12時30分二十九秒

附近 'VARCHAR(50))' 使用手冊

允許的值在Cast Functions and Operators解釋。

+1

謝謝,它已經工作;根據'diEcho'評論。 – Netmoon 2012-04-10 12:26:37