Mysql 使用sql删除同表中重复数据并加唯一索引

同一张表中,假设以两个字段做唯一业务,这两个字段分别为key1,key2,

则以这两个字段为唯一

DELETE tablename FROM
    tablename ,
    (
        SELECT
            min(id) id,
           key1, key2
        FROM
            tablename 
        GROUP BY
            
            key1, key2
        HAVING
            count(*) > 1
    ) t2
                WHERE
 tablename .key1=t2.key1 
AND tablename .key2=t2.key2
AND tablename .id > t2.id;

 增加唯一索引

ALTER TABLE t_procurement_order_instock add unique index uniq_t_procurement_order_instock(`t_procurement_order_instock_id`);  

ALTER TABLE tablename DROP INDEX ix_instock_date_warehouse_g_f_lu_standard_item, ADD INDEX idx_f_lu_standard_item_warehouse_g_item_status_instock_date(`f_lu_standard_item`,`warehouse_g`,`item_status`,`instock_date`);
ALTER TABLE tablename DROP INDEX IND_PAY_ORDER_1; ALTER IGNORE TABLE PAY_ORDER ADD UNIQUE INDEX IND_PAY_ORDER_1(ORDER_ID); 将ORDER_ID设为唯一索引(IND_PAY_ORDER_1)删除重复数据