mysql插入值,如果它不存在

标签 mysql insertion

我正在尝试将一种成分插入到成分表中(如果它不存在)。 我正在使用以下语法:

INSERT INTO ingredient(Name) 
(
 SELECT 'ingName' FROM dummytable WHERE 
(SELECT count(*) FROM ingredient WHERE Name = 'ingName')=0)

这似乎不起作用(0 行受影响),即使 SELECT 查询似乎返回了所需的结果(一个包含“ingName”的条目)。

“成分”表有 2 列:名称、id(id 是自动递增的)

谢谢, 李

最佳答案

最好在name列上添加唯一索引:

ALTER TABLE `ingredient` ADD UNIQUE(`Name`)

完成后你可以使用INSERT IGNORE:

INSERT IGNORE INTO `ingredient` ... /* anything */

关于mysql插入值,如果它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10574426/

相关文章:

mysql - 如何预测MySQL的临界点?

c++ - 在链表末尾插入节点时出错

C - 插入排序算法

sql - 元组没有按顺序插入数据库表中?

mysql - 用于根据其他列值将数据插入列的sql

mysql - 连接的正确语法

php - Yii2:Gridview 中过滤值列的总和

mysql - BEFORE UPDATE 触发器阻止所有更新

javascript - NOT_FOUND_ERR : DOM Exception 8 - javascript

algorithm - 插入、删除和替换有什么区别