sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgresql cambia el tipo de columna de int a UUID

No puedes simplemente enviar un int4 a uuid; sería un uuid inválido, con solo 32 bits configurados, los 96 bits altos serían cero.

Si desea generar nuevos UUID para reemplazar los enteros por completo, y si no existen referencias de clave externa a esos enteros, puede usar una conversión falsa que en realidad genera nuevos valores.

No ejecutar esto sin una copia de seguridad de sus datos. Elimina permanentemente los valores antiguos en colA .

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

Un mejor enfoque suele ser agregar una columna uuid, luego corrija cualquier referencia de clave externa para señalarla y finalmente suelte la columna original.

Necesita el módulo UUID instalado:

CREATE EXTENSION "uuid-ossp";

Las comillas son importantes.