需要更正以下触发器中的语法错误使用phpMyAdmin执行它

时间:2016-03-08 06:34:09

标签: mysql sql triggers

这是我写的代码

delimiter //
CREATE TRIGGER user_address_check BEFORE INSERT ON street_master
FOR EACH ROW
BEGIN
DECLARE @check int;
@check = STRCMP(NEW.locality_name,street_master.locality_name)
if(@check!=1)
then dbms_output.put_line('Record Already Exists');
End IF;
END;
//delimiter;

street_master是表名, locality_name是一列

收到的错误是:

  

您的SQL查询中似乎有错误。 MySQL服务器错误   下面的输出,如果有的话,也可以帮助你诊断   问题。错误:未知的标点字符串@ 235 STR://#1064 -   Erreur desyntaxeprèsde'@ checkck; @check =   STRCMP(street_master.locality_name,NEW.name); if(@check!= 1)'Ãla   ligne 4

1 个答案:

答案 0 :(得分:0)

你得到的错误来自于@的变量前缀。如果你使用mysql复合语句语法,那么就不需要用@作为前缀,所以删除它。

但是,您尝试实现的目标可以通过在locality_name字段上创建一个简单的唯一索引来完成。

如果你坚持使用触发器,那么strcmp()调用是不正确的,你应该运行一个select来检查该值是否存在。