2010-07-17 100 views
0

我得到了這個觸發器,如果​​regexp返回一個值,我想評估手機並插入到另一個表中。我已經嘗試過但沒有成功。MySQL觸發器問題

delimiter // 

create trigger companyA_phones after insert on customer 

for each row 

begin 

    set @phone = (select new.phone from customer where new.phone regexp '^0416'); 

    if (@phone) then 

     insert into company_A(new.id, @phone); 

    end if; 

end// 

回答

3

你不讓它完全清楚你有什麼麻煩,但我不認爲你需要選擇喜歡的。新的價值 - 因爲他們已經提供給您。嘗試是這樣的:

CREATE TRIGGER companyA_phones 
AFTER INSERT ON customer 
FOR EACH ROW 
BEGIN 
    IF (new.phone REGEXP '^0416' AND new.id IS NOT NULL) THEN 
    INSERT INTO company_A (customerid, phone) 
     VALUES (new.id, new.phone); 
    END IF; 
END 

需要這個觸發似乎表明,你的基礎架構的設計是沒有正確歸一化,所以你可能要考慮這一點。

+0

謝謝。我在觸發器上遇到了一個可怕的錯誤,我只需要用正則表達式評估手機。謝謝。 – Felix 2010-07-17 17:03:06