2011-05-10 100 views
2

我有一种情况,当第一个表中插入一行数据时,我想更新第二个表。为了实现这一点,我使用mysql触发器,下面是我正在使用的查询,但它不适合我。在插入命令时更新mysql表

DELIMITER $$ 
CREATE TRIGGER after_insert; 

AFTER INSERT ON table_first 

    FOR EACH ROW BEGIN 

    INSERT INTO table_second 
     (value1, rvalue2, value3) 
    VALUES 
     ('123456', '654321', 'hello trigger') 

    END 

DELIMITER ; 

这两个表存在于同一个数据库中。 感谢

回答

4

一些小的语法问题...这里:

DELIMITER $$ 
CREATE TRIGGER after_insert -- remove ; 
AFTER INSERT ON table_first 
    FOR EACH ROW BEGIN 
    INSERT INTO table_second 
     (value1, rvalue2, value3) 
    VALUES 
     ('123456', '654321', 'hello trigger'); -- add ; 
    END 
$$ -- add $$ 

DELIMITER ; 
+0

得益于它完美地工作。现在你能告诉我一件事吗?假设第一个表中存在列性别,并且我希望触发器的INSERT查询仅在性别为“男性”时才运行。我尝试了如果NEW.gender =='男'“做点什么”END IF,但它不起作用。谢谢 – hsinxh 2011-05-10 06:54:30

+0

SQL中的等号运算符是“=”,而不是“==”......(是的,如果你最近做了一些C/php/python /等,你必须改变习惯) – peufeu 2011-05-10 09:25:25