Du kan inte bara casta en int4 till uuid; det skulle vara en ogiltig uuid, med endast 32 bitar inställda, de höga 96 bitarna är noll.
Om du vill generera nya UUID för att ersätta heltalen helt, och om det inte finns några befintliga främmande nyckelreferenser till dessa heltal, kan du använda en falsk cast som faktiskt genererar nya värden.
Kör inte detta utan en säkerhetskopia av dina data. Den kastar permanent bort de gamla värdena i colA
.
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());
Ett bättre tillvägagångssätt är vanligtvis att lägga till en uuid-kolumn, fixa sedan eventuella främmande nyckelreferenser för att peka på den och släpp till sist den ursprungliga kolumnen.
Du behöver UUID-modulen installerad:
CREATE EXTENSION "uuid-ossp";
Citaten är viktiga.