在mysql中使用Alter和ignore来删除重复项

时间:2016-10-13 18:57:03

标签: mysql sql database

我正在使用MYSQL并有一个表'bid',其中包含重复的条目 我的表架构是

ITEM_CODE   | int(11)     | YES  |     | NULL    |       |
| Max_BidP    | int(11)     | YES  |     | NULL    |       |
| Seller_Name | varchar(45) | YES  |     | NULL    |       |
| Buyer_Name  | varchar(45) | YES  |     | NULL    |       |
| ITEM_NAME   | varchar(45) | YES  |     | NULL    |       |
| Qty         | int(11)     | YES  |     | 1       |       |
+-------------+-------------+------+-----+---------+-------+

表格中的一个条目

16 |       30 | sahraw       | sahraw       | J.K Rowling |    1 |
16 |       30 | sahraw       | sahraw       | J.K Rowling |    1 |

我正在尝试删除dulicates,我指定的查询是

ALTER IGNORE TABLE bid ADD UNIQUE INDEX (ITEM_CODE , Max_BidP ,Seller_Name  , Buyer_Name   , ITEM_NAME ,   Qty); 

但它给我一个错误

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'IGNORE TABLE bid ADD UNIQUE INDEX(ITEM_CODE,Max_BidP,Seller_Nam'第1行)附近使用正确的语法

我出错的任何建议。

由于

2 个答案:

答案 0 :(得分:0)

请检查您正在使用的MySQL版本。

从MySQL 5.7.4开始,删除了ALTER TABLE的IGNORE子句,并且它的使用会产生错误。 http://dev.mysql.com/doc/refman/5.7/en/alter-table.html

答案 1 :(得分:0)

如果您使用的是MySql 5.7.4或更高版本,IGNORE将不再可用。见MySQL “ALTER IGNORE TABLE” Error In Syntax