我想将列的dataType从UUID
更改为int4
ALTER TABLE tableA ALTER COLUMN columnA TYPE int4(32);
但这给了我一个错误。
ERROR: type modifier is not allowed for type "int4"
我试着在网上搜索,发现我必须使用USING
,但不知道如何使用。
您无法真正将UID转换为int。值太多,因此您会面临冲突的风险(随着表变大,冲突风险会上升到100%(。
我的猜测是,您真的想要在表上有一个id
列。如果是,添加一个新列并删除旧列:
alter table tableA add a_id int generated always as identity,
drop columnA;
注意:在旧版本的Postgres中,您将使用serial
而不是int generated always as identity
。
您的32
在语法上被视为修饰符。修饰符允许用于数字和十进制类型,但不允许用于普通int,int4(xxx(在Postgres中不是有效类型(我相信它在mysql中(int4
只是integer
的别名。