ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 自定义类型 PostgreSQL 允许您使用 CREATE DOMAIN 和 CREATE TYPE 语句创建用户定义数据类型。 语法 ``` CREATE DOMAIN name [ AS ] data_type [ COLLATE collation ] [ DEFAULT expression ] [ { NOT NULL | NULL | CHECK (expression) } ] ``` ### 示例 创建一个默认为空字符的类型 ``` CREATE DOMAIN not_null_text AS TEXT DEFAULT ''; ``` 基于此类型创建表 ``` CREATE TABLE test_domain ( col1 not_null_text, col2 not_null_text ); ``` ## 创建复合类型实例 创建自定义类型 ``` CREATE TYPE address as (country TEXT, city TEXT); ``` 利用 addres 把 json 转为 SQL ``` SELECT * FROM json_to_record( '{"name": "Tom", "age": 20, "address": {"country": "CN", "city": "BeiJing"}}' ) AS x(name TEXT, age INT, address address); 输出 name | age | address ------+-----+-------------- Tom | 20 | (CN,BeiJing) (1 row) ```