MYSQL在一列上插入忽略

时间:2012-08-11 09:09:27

标签: mysql sql insert

我正在尝试使用insert ignore语句将名称放在数据库中。我不想创建重复项,但是,我使用的insert ignore语句一直在插入!

陈述是:

INSERT IGNORE INTO firstname(name) VALUES ('Tommy')

我的数据库显示了这个:

id  |  name
-------------
1      Tommy
2      Tommy
3      Tommy

一些帮助我的人的信息。我的id是我的主键,它是自动递增的。

我的猜测是因为新的id是自动创建的,所以它认为它是一个新的结果!我不知道如何用更大的SQL查询来检查这个expcept,检查Tommy名称是否存在

由于

3 个答案:

答案 0 :(得分:5)

这是因为name表格中的firstname列是not unique。尝试使用此DDL语句添加unique约束,

ALTER TABLE firstname ADD UNIQUE (name);

然后尝试它是否仍然添加重复的名称。希望它现在有效:)

答案 1 :(得分:0)

您是否尝试在“名称”列上设置“唯一键”约束?

答案 2 :(得分:0)

鉴于您的架构,使用IGNORE没有任何区别。 IGNORE用于忽略插入期间引发的潜在错误。

要避免名称列中出现重复项,请在该列上添加UNIQUE约束,并从INSERT语句中删除IGNORE关键字。如果继续使用IGNORE,UNIQUE约束将导致错误但它将被忽略,这意味着实际上将忽略UNIQUE约束。