Postgresql изменить тип столбца с UUID на int4 - PullRequest
0 голосов
/ 04 апреля 2020

Я хотел изменить dataType столбца с UUID на int4

ALTER TABLE tableA ALTER COLUMN columnA TYPE int4(32);

Но это выдает ошибку.

ERROR: type modifier is not allowed for type "int4"

Я попытался выполнить поиск по inte rnet и обнаружил, что должен использовать USING, но не знаю, как его использовать.

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

Вы не можете превратить UID в int. Слишком много значений, поэтому вы рискуете столкнуться (который увеличивается до 100% по мере увеличения таблицы).

Я предполагаю, что вам действительно нужен столбец id в таблице. Если это так, добавьте новый столбец и удалите старый:

alter table tableA add a_id int generated always as identity,
                   drop columnA;

Примечание. В более старых версиях Postgres вместо int generated always as identity.

будет использоваться serial.
0 голосов
/ 04 апреля 2020

Ваш 32 синтаксически рассматривается как модификатор. Модификаторы разрешены для числовых c и десятичных типов, но не для простых целых чисел, int4 (xxx) не является допустимым типом в Postgres (я полагаю, что это в mysql) int4 это просто псевдоним для integer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...