在pgAdmin中创建自定义类型时使用UUID数据类型报错
问题解决:PostgreSQL创建复合类型时UUID语法错误
错误原因
你写的复合类型创建语法不符合PostgreSQL规范,创建**复合类型(composite type)**必须使用AS关键字,你漏掉了这一步,导致解析器无法识别字段定义的语法。
修正后的SQL语句
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE DOMAIN Rating SMALLINT CHECK (VALUE > 0 AND VALUE <= 5); CREATE TYPE Feedback AS ( student_id uuid, rating Rating, feedback TEXT );
验证方法
创建完成后可以用以下语句测试自定义类型:
-- 测试复合类型 SELECT (uuid_generate_v4(), 4, '课程很实用')::Feedback;
补充说明
- 复合类型的标准语法是
CREATE TYPE type_name AS (field_name data_type, ...),和创建表的语法类似但必须带AS - UUID类型本身没问题,报错只是因为语法结构错误,和UUID类型无关
内容的提问来源于stack exchange,提问作者Ali Hassan
相关产品推荐
相关产品推荐

