Postgresql将列类型从int更改为UUID
发布时间:2020-12-13 16:35:29 所属栏目:百科 来源:网络整理
导读:我想将列类型从int更改为uuid。我使用以下语句 ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID; 但是我收到错误消息 ERROR: column "colA" cannot be cast automatically to type uuidHINT: Specify a USING expression to perform the conversio
我想将列类型从int更改为uuid。我使用以下语句
ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID; 但是我收到错误消息 ERROR: column "colA" cannot be cast automatically to type uuid HINT: Specify a USING expression to perform the conversion. 我很困惑如何使用USING做演员。
你不能只是把一个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"; 报价很重要。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |