ignore是根据表的索引是进行过滤的,包括主键(唯一索引)和自定义的。
前几天做一个邮件验证系统时遇到一个问题,一个用户表,用户名是邮箱地址,并且是唯一索引。如果用户在更改资料是,改成其他用户的邮箱,就mysql运行sql 语句是会报错(确保用户邮箱的唯一性)。如果用IGNORE,则可以,屏敝错误,正常运行。
insert ignore into // 数据重复判断,重复的数据无法插入 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如: INSERT IGNORE INTO books (name) VALUES ('MySQL Manual')
如果我的语句是insert ignore into tt(name,password,update_dt) values('phl','123',now()) 这样的话,它能过滤重复吗?
可以,是根据你的unique索引来决定是否过滤的
如果这样的话
你的建表语句中还需要添加
ALTER TABLE `tt`
ADD UNIQUE INDEX (`name`, `password`)