mysql - 如果项目不存在,则仅插入表中

标签 mysql sql insert

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

餐 table 水果

+-------------+
| id | name   |
+ ----------- +
| 1  | apple  |
| 2  | orange |
| 3  | banana |
| 4  | grape  |
+-------------+

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

查询

IF NOT EXISTS (SELECT name FROM fruit WHERE name = 'mango')
INSERT INTO fruit (name) 
VALUES ('mango')

错误

我使用一个名为 Sequel Pro 的 SQL GUI 应用程序,该查询出现以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'IF NOT EXISTS (SELECT name FROM fruit WHERE name = 'mango') INSERT INTO frui' 附近使用正确的语法

也许

可能发生了一些可疑的事情。查询可能在 INSERT INTO frui 处停止。应用程序有问题?还是我的查询有误?

最佳答案

你必须使用

ALTER TABLE fruit ADD UNIQUE (name) 

然后使用

INSERT IGNORE INTO fruit (name) VALUES ('mango')

关于mysql - 如果项目不存在,则仅插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928181/

相关文章:

mysql - 在 MYSQL 中触发删除

mysql - InnoDB B+ 树索引 - 重复值

php - 我可以用 MySQL 做到这一点,还是需要让 PHP 参与进来?

android - SQLiteConstraintException 不要进入 catch

数据库 |如果字段存在,更新记录插入插入

mysql - 如何将 Amazon RDS 从 MySQL 5.1 迁移到 MySQL 5.5?

SQL 将任意字符转换为零 0

python - Django 查询将参数传递到values()

mysql - 关于对比较的 SQL 查询的优化

insert - FMDB sqlite 插入失败