这是我写的代码
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
答案 0 :(得分:0)
你得到的错误来自于@的变量前缀。如果你使用mysql复合语句语法,那么就不需要用@作为前缀,所以删除它。
但是,您尝试实现的目标可以通过在locality_name
字段上创建一个简单的唯一索引来完成。
如果你坚持使用触发器,那么strcmp()调用是不正确的,你应该运行一个select来检查该值是否存在。