关于触发的问题是否有MySQL中的其他语句

发布于 2025-01-22 04:58:53 字数 1702 浏览 3 评论 0原文

我将如何使这个扳机工作?

我打算如下表所示获得结果,但是我当前的触发器似乎不起作用。如果我取出代码的其他段,则详细信息表将记录“ frodo”,并在详细信息表中使用空电话号码记录。

我只想在phone_no不为null时才激活触发器。

客户表

ID名称phone_no
0001SAM0123456789
0002frodonull

详细信息表

ID名称类别详细信息详细信息
0001SAM电话0123456789
DELIMITER $$
CREATE TRIGGER new_customer 
AFTER INSERT 
ON customer  
FOR EACH ROW 
BEGIN
    IF customer.phone_no IS NOT NULL THEN 
        INSERT INTO details (id, name, category, details) 
        VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);
    END IF;
END$$
DELIMITER ;

我一直在[valution(new.id,new.name,new.name,“ phone phone phone phone phone”,new.phone_no)上遇到错误[IF;]和[END;]代码的行。

MySQL Workbench的错误对[values(new.id,new.name,“ phone”,new.phone_no);]状态”语句不完整,期望';';' ”。

mySQL工作台的错误[end if;]和[end;]指出“'end'在此位置不有效,期望EOF,Alter,分析,开始,...”。

我不确定代码中的错误在哪里,我想寻求一些建议。

感谢任何帮助或建议。

How would I get this trigger to work?

I intend to get the results as shown in the table below, but my current trigger does not seem to work. If I take out the IF ELSE section of the code, the details table would record "Frodo" with a null phone number in the details table.

I would want to let the trigger only activate when the phone_no is NOT NULL.

Customer Table

idnamephone_no
0001Sam0123456789
0002FrodoNULL

Details Table

idnamecategorydetails
0001SamPhone0123456789
DELIMITER $
CREATE TRIGGER new_customer 
AFTER INSERT 
ON customer  
FOR EACH ROW 
BEGIN
    IF customer.phone_no IS NOT NULL THEN 
        INSERT INTO details (id, name, category, details) 
        VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);
    END IF;
END$
DELIMITER ;

I keep getting an error on the [VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);], [END IF;] and [END;] lines of the code.

The error from MySQL Workbench for [VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);] states "statement is incomplete, expecting ';' ".

The error for MySQL Workbench for [END IF;] and [END;] states " 'END' is not valid at this position, expecting EOF, ALTER, ANALYZE, BEGIN,... ".

I am not sure where the error is in the code and I would like to seek for some advice.

Would be thankful for any help or advice.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巡山小妖精 2025-01-29 04:58:53

代码现在可以使用。

DELIMITER $
CREATE TRIGGER new_customer 
AFTER INSERT 
ON customer  
FOR EACH ROW 
BEGIN
    IF NEW.phone_no IS NOT NULL THEN 
        INSERT INTO details (id, name, category, details) 
        VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);
    END IF;
END$
DELIMITER ;

如P.Salmon的建议,必须添加定界符和“ If New.Phone_no”才能工作。

Code now works with this.

DELIMITER $
CREATE TRIGGER new_customer 
AFTER INSERT 
ON customer  
FOR EACH ROW 
BEGIN
    IF NEW.phone_no IS NOT NULL THEN 
        INSERT INTO details (id, name, category, details) 
        VALUES(NEW.id, NEW.name, "Phone", NEW.phone_no);
    END IF;
END$
DELIMITER ;

Had to add delimiters and "IF NEW.phone_no" for it to work, as suggested by P.Salmon.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文