2010-07-17 74 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