MYSQL在一列上插入忽略
我试图使用insert ignore语句将名称放入数据库中。我不想创建重复项,但是,我使用的insert ignore语句一直在插入 声明如下:MYSQL在一列上插入忽略,mysql,sql,insert,Mysql,Sql,Insert,我试图使用insert ignore语句将名称放入数据库中。我不想创建重复项,但是,我使用的insert ignore语句一直在插入 声明如下: INSERT IGNORE INTO firstname(name) VALUES ('Tommy') 我的数据库显示: id | name ------------- 1 Tommy 2 Tommy 3 Tommy 为帮助我的人提供一些信息。我的id是我的主键,它是自动递增的 我的猜测是,因为新的id是自动创建的
INSERT IGNORE INTO firstname(name) VALUES ('Tommy')
我的数据库显示:
id | name
-------------
1 Tommy
2 Tommy
3 Tommy
为帮助我的人提供一些信息。我的id是我的主键,它是自动递增的
我的猜测是,因为新的id是自动创建的,所以它认为这是一个新的结果!我不知道如何通过更大的SQL查询来解决这个EXCEPT问题,首先检查Tommy的名字是否存在
谢谢这是因为
firstname
表中的name
列是不唯一的
。尝试使用此DDL语句添加unique
约束
ALTER TABLE firstname ADD UNIQUE (name);
然后尝试添加重复的名称。希望它现在能起作用:)这是因为
firstname
表中的列的不是唯一的。尝试使用此DDL语句添加unique
约束
ALTER TABLE firstname ADD UNIQUE (name);
然后尝试添加重复的名称。希望它现在能工作:)您是否尝试过在“名称”列上设置“唯一键”约束?您是否尝试过在“名称”列上设置“唯一键”约束?鉴于您的架构,使用“忽略”没有任何区别。IGNORE用于忽略插入过程中引发的潜在错误
为了避免名称列中出现重复,请在该列上添加唯一约束,并从INSERT语句中删除IGNORE关键字。如果继续使用忽略,唯一约束将导致错误,但它将被忽略,这意味着实际上唯一约束将被忽略。对于您的模式,使用忽略没有任何区别。IGNORE用于忽略插入过程中引发的潜在错误
为了避免名称列中出现重复,请在该列上添加唯一约束,并从INSERT语句中删除IGNORE关键字。如果继续使用“忽略”,唯一约束将导致错误,但它将被忽略,这意味着事实上唯一约束将被忽略。我已经这样做了,效果非常好。您仍然会使用INSERT IGNORE还是只使用INSERT?您仍然可以使用INSERT IGNORE
:)我已经完成了这项工作,效果非常好。您仍然使用INSERT IGNORE还是仅使用INSERT?您仍然可以使用INSERT IGNORE
:)