lcj*_*ury 9 postgresql database-design ddl composite-types
在 ORDBMS 数据库中,我看到可以使用复杂类型:
create type name as( ...)
Run Code Online (Sandbox Code Playgroud)
我可以在创建新表时引用这些类型,例如:
create table example (row_name ref(name))
Run Code Online (Sandbox Code Playgroud)
如何在 PostgreSQL 中实现相同的目标?
Erw*_*ter 13
您可以使用类型表:
CREATE TYPE mytype AS (some_id int, some_col text);
CREATE TABLE example OF mytype (PRIMARY KEY (some_id));Run Code Online (Sandbox Code Playgroud)
我添加了一个 PK 约束(你没有要求)。
语法在手册中CREATE TABLE记录为第二个变体,这也进一步解释了:
OF类型名称创建一个类型化表,它从指定的复合类型(名称可选模式限定)中获取其结构。类型表与其类型相关;例如,如果删除类型(使用
DROP TYPE ... CASCADE),则表将被删除。创建类型表时,列的数据类型由基础复合类型决定,而不是由
CREATE TABLE命令指定。但是该CREATE TABLE命令可以向表中添加默认值和约束,并且可以指定存储参数。
| 归档时间: |
|
| 查看次数: |
4670 次 |
| 最近记录: |