簡體   English   中英

MySQL忽略非主鍵上的重復項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM