roc*_*tas 4 mysql key unique alter-table duplicates
我有一个表包含1列的重复值,即表 emails
id email
1 test@test.com
2 test@test.com
3 more@most.many
4 cook@sheep.com
Run Code Online (Sandbox Code Playgroud)
我想删除id为'2'的行.我想通过创建一个独特的索引来实现这一点,email从而迫使表格减少冗余.
我在这里引用了这种方法(http://www.it-iss.com/mysql/sql-removing-duplicate-records/)和/sf/ask/1330003531/第一对的一双层记录与- ALTER-忽略-命令在MySQL的
但是当我尝试这个陈述时
alter ignore table emails_test add unique index(email)
我收到test@test.com的重复输入错误,好像我从未包含该ignore关键字
这里有什么我想念的吗?如果这是不可能的,那么删除比使用临时表更简单的重复项的替代方法是什么MySQL Error 1093 - 无法在FROM子句中指定更新的目标表
tad*_*man 11
你可以尝试这样做几个单独的步骤:
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
Run Code Online (Sandbox Code Playgroud)