Nie możesz po prostu rzucić int4 na uuid; byłby to nieprawidłowy identyfikator uuid, z ustawionymi tylko 32 bitami, przy czym wysokie 96 bitów to zero.
Jeśli chcesz wygenerować nowe identyfikatory UUID, aby całkowicie zastąpić liczby całkowite, i jeśli nie ma istniejących odwołań do kluczy obcych do tych liczb całkowitych, możesz użyć fałszywego rzutowania, które faktycznie generuje nowe wartości.
Nie uruchamiaj tego bez tworzenia kopii zapasowej danych. Trwale odrzuca stare wartości w colA
.
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());
Lepszym podejściem jest zwykle dodanie kolumnę uuid, a następnie popraw odniesienia do kluczy obcych, aby wskazywały na nią, i na koniec usuń oryginalną kolumnę.
Musisz mieć zainstalowany moduł UUID:
CREATE EXTENSION "uuid-ossp";
Cytaty są ważne.