feat: refs #8057 Added data updates
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Guillermo Bonet 2024-11-14 09:00:19 +01:00
parent b7655b4f92
commit d4b0da50d0
3 changed files with 65 additions and 14 deletions

View File

@ -2,3 +2,20 @@ ALTER TABLE vn.address
ADD geoFk int(11) DEFAULT NULL NULL AFTER isLogifloraAllowed,
ADD CONSTRAINT address_zoneGeo_FK FOREIGN KEY (geoFk)
REFERENCES vn.zoneGeo(id) ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE OR REPLACE TEMPORARY TABLE tAddressGeo
(PRIMARY KEY (id))
ENGINE = MEMORY
SELECT a.id, p.geoFk
FROM address a
JOIN town t ON t.provinceFk = a.provinceFk
JOIN postCode p ON p.townFk = t.id
AND p.`code` = a.postalCode
GROUP BY a.id
ORDER BY (a.city SOUNDS LIKE t.`name`) DESC;
UPDATE address a
JOIN tAddressGeo tag ON tag.id = a.id
SET a.geoFk = tag.geoFk;
DROP TEMPORARY TABLE tAddressGeo;

View File

@ -5,3 +5,20 @@ ALTER TABLE vn.client
ADD geoFk int(11) DEFAULT NULL NULL AFTER hasDailyInvoice,
ADD CONSTRAINT client_zoneGeo_FK FOREIGN KEY (geoFk)
REFERENCES vn.zoneGeo(id) ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE OR REPLACE TEMPORARY TABLE tClientGeo
(PRIMARY KEY (id))
ENGINE = MEMORY
SELECT c.id, p.geoFk
FROM client c
JOIN town t ON t.provinceFk = c.provinceFk
JOIN postCode p ON p.townFk = t.id
AND p.`code` = c.postcode
GROUP BY c.id
ORDER BY (c.city SOUNDS LIKE t.`name`) DESC;
UPDATE client c
JOIN tClientGeo tcg ON tcg.id = c.id
SET c.geoFk = tcg.geoFk;
DROP TEMPORARY TABLE tClientGeo;

View File

@ -4,3 +4,20 @@ ALTER TABLE vn.supplier
ADD geoFk int(11) DEFAULT NULL NULL AFTER companySize,
ADD CONSTRAINT supplier_zoneGeo_FK FOREIGN KEY (geoFk)
REFERENCES vn.zoneGeo(id) ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE OR REPLACE TEMPORARY TABLE tSupplierGeo
(PRIMARY KEY (id))
ENGINE = MEMORY
SELECT sa.supplierFk id, p.geoFk
FROM supplierAddress sa
JOIN town t ON t.provinceFk = sa.provinceFk
JOIN postCode p ON p.townFk = t.id
AND p.`code` = sa.postalCode
GROUP BY sa.supplierFk
ORDER BY (sa.city SOUNDS LIKE t.`name`) DESC;
UPDATE supplier s
JOIN tSupplierGeo tsg ON tsg.id = s.id
SET s.geoFk = tsg.geoFk;
DROP TEMPORARY TABLE tSupplierGeo;