40 lines
1.6 KiB
MySQL
40 lines
1.6 KiB
MySQL
|
USE vn;
|
||
|
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup DROP FOREIGN KEY IF EXISTS sectorCollectionSaleGroup_FK_1;
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup DROP FOREIGN KEY IF EXISTS sectorCollectionSaleGroup_FK;
|
||
|
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup DROP KEY IF EXISTS sectorCollectionSaleGroup_UN;
|
||
|
DELETE
|
||
|
FROM sectorCollectionSaleGroup
|
||
|
WHERE id NOT IN (
|
||
|
SELECT *
|
||
|
FROM (
|
||
|
SELECT MIN(id)
|
||
|
FROM sectorCollectionSaleGroup
|
||
|
GROUP BY saleGroupFk
|
||
|
) as temp_table
|
||
|
);
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup ADD CONSTRAINT UNIQUE KEY (saleGroupFk);
|
||
|
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup ADD CONSTRAINT FOREIGN KEY (sectorCollectionFk) REFERENCES vn.sectorCollection(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup ADD CONSTRAINT FOREIGN KEY (saleGroupFk) REFERENCES vn.saleGroup(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
CREATE OR REPLACE TEMPORARY TABLE tSGD
|
||
|
SELECT saleFk, sgd.id, count(*) n
|
||
|
FROM vn.saleGroupDetail sgd
|
||
|
GROUP BY saleFk
|
||
|
HAVING n > 1;
|
||
|
|
||
|
DELETE sgd.*
|
||
|
FROM vn.saleGroupDetail sgd
|
||
|
JOIN tSGD ON tSGD.saleFk = sgd.saleFk AND tSGD.id <> sgd.id;
|
||
|
|
||
|
DROP TEMPORARY TABLE tSGD;
|
||
|
|
||
|
ALTER TABLE vn.sectorCollectionSaleGroup ADD CONSTRAINT FOREIGN KEY (saleGroupFk) REFERENCES vn.saleGroup(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
ALTER TABLE vn.saleGroupDetail DROP FOREIGN KEY IF EXISTS saleGroupDetail_FK;
|
||
|
ALTER TABLE vn.saleGroupDetail DROP FOREIGN KEY IF EXISTS saleGroupDetail_FK_1;
|
||
|
ALTER TABLE vn.saleGroupDetail DROP KEY IF EXISTS saleGroupDetail_UN;
|
||
|
ALTER TABLE vn.saleGroupDetail ADD CONSTRAINT FOREIGN KEY (saleFk) REFERENCES vn.sale(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|