2012-08-11 95 views
1

我想使用插入忽略语句在数据库中放入一个名称。我不想创建重复,但是,我使用插入忽略语句不断插入!MYSQL在一列上插入忽略

的说法是:

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

我的数据库显示,这一点:人们帮助我的信息

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

一对夫妇位。我的ID是我的主键,它是自动递增的。

我的猜测是,因为新的ID是自动创建它认为它的新结果!我不知道如何解决这个expcept一个更大的SQL查询检查,如果名称汤米存在第一

感谢

回答

5

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

ALTER TABLE firstname ADD UNIQUE (name); 

然后尝试,如果它仍然添加重复的名字。希望它现在的作品:)

+0

我已经完成了这项工作,而且效果很好。你还会使用INSERT IGNORE还是只使用INSERT? – bubblebath 2012-08-11 09:20:01

+2

你仍然可以使用'INSERT IGNORE' :) – 2012-08-11 09:21:55

0

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

0

鉴于您的架构,使用IGNORE并无区别。 IGNORE用于忽略插入过程中产生的潜在错误。

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