[英]MySQL ignoring duplicates on non-primary key
我有一个通过此SQL语句创建的表:
CREATE TABLE employees (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(20),
PRIMARY KEY (id)
);
我想使用类似的东西插入表格
INSERT IGNORE INTO employees (name) values ('foo');
但对于该语句,如果表中已经存在一个名为“ foo”的人,则不执行任何操作。 是否有一条语句可以忽略除主键或定义为唯一的字段以外的其他字段上的重复项?
INSERT INTO employees (name)
SELECT "foo" name FROM (select count(*) c
from employees
where name = "foo"
having c = 0) x;
您应该在name
上建立索引以提高效率。 我不确定为什么您不想使其成为唯一索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.