PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql променя типа на колоната от int на UUID

Не можете просто да пуснете 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";

Кавичките са важни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете Номер на ред в postgres

  2. postgresql списък и подреждане на таблици по размер

  3. Свързване с PostgreSQL в IRI Workbench

  4. Как да извършвате операции за актуализиране на колони от тип JSONB в Postgres 9.4

  5. Импортиране на .csv с колона за време (dd.mm.yyyy hh.mm.ss) с помощта на psql \copy