创建不存在时增加值的过程(语法错误)

Creating procedure that add value when it doesn't exist (Syntax error)

我正在尝试创建一个过程来添加一个不存在的值,但我目前遇到语法错误。我不知道如何纠正错误。任何帮助将不胜感激!

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT * FROM Animals WHERE Name = animalName); END' at line 5


Delimiter //
CREATE PROCEDURE AddUniqueName (In animalName varchar(100) )
BEGIN
  INSERT INTO Animals (Name)
  SELECT animalName
  WHERE NOT EXISTS (SELECT * FROM Animals WHERE Name = animalName);
END //
    
Delimiter ;

对 uniq 键使用 INSERT IGNORE 语句。

假设您有 table

create table Animals( name varchar(255) unique key);

然后

Delimiter //
CREATE PROCEDURE AddUniqueName (In animalName varchar(100) )
BEGIN
    INSERT IGNORE INTO Animals (Name) values(animalName);
END //
    
Delimiter ;