【问题标题】:MySQL trigger issueMySQL 触发器问题
【发布时间】:2011-03-17 06:40:45
【问题描述】:

我得到了这个触发器,如果​​正则表达式返回一个值,我想评估手机并插入另一个表。我已经尝试过,但没有成功。

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//

【问题讨论】:

    标签: sql mysql triggers


    【解决方案1】:

    您并没有完全清楚自己遇到了什么麻烦,但我认为您不需要像这样选择 .new 值 - 因为它们已经可供您使用。试试这样的:

    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
    

    对这个触发器的需求似乎表明你的底层架构设计没有正确规范化,所以你可能也想考虑一下。

    【讨论】:

    • 谢谢。我的触发器有一个可怕的错误,我只需要使用正则表达式评估手机。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 2023-04-02
    • 2014-11-29
    • 2013-12-06
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多