2012-11-26 43 views
0
CREATE TRIGGER Tr1 
AFTER DELETE ON Table1 
REFERENCING 
    OLD TABLE AS OldTable, 
    NEW TABLE AS NewTable 
FOR EACH STATEMENT 

產生以下錯誤:MySql的觸發器 - 引用聲明

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that  corresponds to your MySQL server version for the right syntax to use near 'REFERENCING 
OLD TABLE AS OldTable, 
NEW TABLE AS NewTable 

這是爲什麼?

+0

參見[MySQL的更新觸發錯誤](http://stackoverflow.com/questions/9095519/mysql-update-觸發錯誤) –

+0

'REFERENCING'不是MySQL的一部分['CREATE TRIGGER'語法](http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html)。 –

+0

那麼我如何才能引用舊錶,即它的狀態,如果我想要做這樣的事情http://stackoverflow.com/questions/13557205/mysql-trigger-for-keeping-min-number-of-rows – Trup

回答

0

如果你想查看舊錶,那麼你應該創建BEFORE DELETE觸發器 -

CREATE TRIGGER Tr1 
    BEFORE DELETE 
    ON Table1 
    FOR EACH ROW 
BEGIN 
    ... 
    SET @old_count = NULL; 
    SELECT COUNT(*) INTO @old_count FROM Table1; 
    ... 
END