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)刪除重復數據

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM