2012-11-26 41 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