我有一个表,其中包含一些重复的值,用于1列,即与表 emails
id email
1 [email protected]
2 [email protected]
3 [email protected]
4 [email protected]
我想删除ID为“ 2”的行。我想通过创建唯一索引来email
强制表删除冗余来做到这一点。
我已经看到了这里引用的这种方法(http://www.it-iss.com/mysql/sql-removing-duplicate-records/)和https://stackoverflow.com/questions/19000050/how-to-delete-第一个双记录与更改忽略命令在MySQL中
但是当我尝试声明 alter ignore table emails_test add unique index(email)
我收到了[email protected]的重复输入错误,好像我从未包含ignore
关键字一样
我在这里想念什么吗?如果这不可能,那么删除重复项的替代方法是什么,比使用临时表更简单些MySQL错误1093-无法在FROM子句中指定目标表进行更新
您可以尝试通过几个单独的步骤进行操作:
CREATE TABLE _emails LIKE emails
ALTER TABLE _emails ADD UNIQUE INDEX(email)
INSERT IGNORE INTO _emails SELECT * FROM emails
RENAME TABLE emails TO emails_old, _emails TO emails
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句