MYSQL在一列上插入忽略

bub*_*ath 1 mysql sql insert

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

声明是:

INSERT IGNORE INTO firstname(name) VALUES ('Tommy')
Run Code Online (Sandbox Code Playgroud)

我的数据库显示:

id  |  name
-------------
1      Tommy
2      Tommy
3      Tommy
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

Joh*_*Woo 5

这是因为该列namefirstnamenot unique.尝试unique使用此DDL语句添加约束,

ALTER TABLE firstname ADD UNIQUE (name);
Run Code Online (Sandbox Code Playgroud)

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

  • 你仍然可以使用`INSERT IGNORE` :) (2认同)