PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql cambia il tipo di colonna da int a UUID

Non puoi semplicemente lanciare un int4 su uuid; sarebbe un uuid non valido, con solo 32 bit impostati, i 96 bit alti sono zero.

Se desideri generare nuovi UUID per sostituire completamente i numeri interi e se non esistono riferimenti di chiave esterna a tali numeri interi, puoi utilizzare un cast falso che genera effettivamente nuovi valori.

Non eseguire questo senza un backup dei tuoi dati. Elimina definitivamente i vecchi valori in colA .

ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());

Un approccio migliore è solitamente quello di aggiungere una colonna uuid, quindi correggi eventuali riferimenti di chiave esterna in modo che puntino ad essa e infine rilascia la colonna originale.

È necessario che sia installato il modulo UUID:

CREATE EXTENSION "uuid-ossp";

Le virgolette sono importanti.