-- MaLo-IDs (Marktlokation) je Sparte an die Adresse: die MaLo gehört zur -- (Liefer-)Adresse, nicht zum Vertrag. Strom + Gas getrennt. ALTER TABLE `Address` ADD COLUMN IF NOT EXISTS `maloIdElectricity` VARCHAR(191) NULL; ALTER TABLE `Address` ADD COLUMN IF NOT EXISTS `maloIdGas` VARCHAR(191) NULL; -- Daten-Migration: bestehende Vertrags-MaLo-IDs an die jeweilige Lieferadresse -- übertragen – je nach Vertragstyp in Strom- bzw. Gas-Feld. Nur setzen, wenn -- am Ziel-Adressfeld noch nichts steht (idempotent, kein Überschreiben). UPDATE `Address` a JOIN `Contract` c ON c.addressId = a.id JOIN `EnergyContractDetails` ecd ON ecd.contractId = c.id SET a.maloIdElectricity = ecd.maloId WHERE c.type = 'ELECTRICITY' AND ecd.maloId IS NOT NULL AND ecd.maloId <> '' AND (a.maloIdElectricity IS NULL OR a.maloIdElectricity = ''); UPDATE `Address` a JOIN `Contract` c ON c.addressId = a.id JOIN `EnergyContractDetails` ecd ON ecd.contractId = c.id SET a.maloIdGas = ecd.maloId WHERE c.type = 'GAS' AND ecd.maloId IS NOT NULL AND ecd.maloId <> '' AND (a.maloIdGas IS NULL OR a.maloIdGas = '');