Не можете просто да пуснете int4 към uuid; това би било невалиден uuid, само със зададени 32 бита, като високите 96 бита са нула.
Ако искате да генерирате нови UUID, които да заменят изцяло целите числа, и ако няма съществуващи препратки към външни ключове към тези цели числа, можете да използвате фалшиво прехвърляне, което всъщност генерира нови стойности.
Не стартирайте това без архивиране на вашите данни. Той завинаги изхвърля старите стойности в colA
.
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());
По-добър подход обикновено е добавянето uuid колона, след това коригирайте всички препратки към външни ключове, за да сочат към нея, и накрая пуснете оригиналната колона.
Имате нужда от инсталиран UUID модул:
CREATE EXTENSION "uuid-ossp";
Кавичките са важни.