如果项目不存在,则仅插入表格

izo*_*ate 23 mysql sql insert

我的数据库有一个名为fruit:

fruit

+-------------+
| id | name   |
+ ----------- +
| 1  | apple  |
| 2  | orange |
| 3  | banana |
| 4  | grape  |
+-------------+
Run Code Online (Sandbox Code Playgroud)

id是主键.我想在表中添加条目,但前提是它们不存在.

查询

IF NOT EXISTS (SELECT name FROM fruit WHERE name = 'mango')
INSERT INTO fruit (name) 
VALUES ('mango')
Run Code Online (Sandbox Code Playgroud)

错误

我使用一个名为Sequel Pro的SQL GUI应用程序,此查询错误如下:

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 'IF NOT EXISTS (SELECT name FROM fruit WHERE name = 'mango') INSERT INTO frui' at line 1

也许

可能有些可疑.查询可能正在停止INSERT INTO frui.应用程序有问题吗?或者我的查询错了?

Shi*_*ght 53

你必须使用

ALTER TABLE fruit ADD UNIQUE (name) 
Run Code Online (Sandbox Code Playgroud)

然后使用

INSERT IGNORE INTO fruit (name) VALUES ('mango')
Run Code Online (Sandbox Code Playgroud)