2011-05-10 103 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