Du kan ikke bare caste en int4 til uuid; det ville være en ugyldig uuid, med kun 32 bit sat, de høje 96 bit er nul.
Hvis du vil generere nye UUID'er for at erstatte heltalene helt, og hvis der ikke er nogen eksisterende fremmednøglereferencer til disse heltal, kan du bruge en falsk cast, der rent faktisk genererer nye værdier.
Kør ikke dette uden backup af dine data. Det kasserer permanent de gamle værdier i colA
.
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());
En bedre tilgang er normalt at tilføje en uuid-kolonne, ret så eventuelle fremmednøglereferencer for at pege på den, og slip til sidst den originale kolonne.
Du skal have UUID-modulet installeret:
CREATE EXTENSION "uuid-ossp";
Citaterne er vigtige.