到目前为止我想出了什么
CREATE TRIGGER no_duplicate BEFORE INSERT ON street_master
FOR EACH ROW
BEGIN
IF(EXISTS(SELECT id from street_master WHERE name=NEW.name))
THEN ;
END IF;
END
我应该在'then'部分写什么我每次写select语句或任何其他语法时都会出现语法错误......
答案 0 :(得分:1)
正如IF Syntax所述:
每个
。statement_list
由一个或多个SQL语句组成;statement_list
空
你可以考虑使用SIGNAL
引发错误,或者故意执行错误操作(比如调用不存在的过程)。但这是错误的方式来解决这个问题。
您真正想要的是定义UNIQUE
索引。正如CREATE INDEX Syntax所述:
UNIQUE
索引创建一个约束,使索引中的所有值必须是不同的。如果您尝试添加具有与现有行匹配的键值的新行,则会发生错误。
因此:
CREATE UNIQUE INDEX uniqueNames ON street_master (name);