用“char”创建复合类型?

Eva*_*oll 0 postgresql datatypes

PostgreSQL 有一个类型char,它被存储为一个有符号的 1 字节 int

类型"char"(注意引号)的不同之处char(1)在于它只使用一个字节的存储空间。它在系统目录中作为一种简单的枚举类型在内部使用。

我们可以创建复合类型"char"?我可以用它创建一个表...

CREATE TABLE pixel ( r "char", g "char", b "char" );
Run Code Online (Sandbox Code Playgroud)

在内部创建一个我可以在其他地方使用的类型,

CREATE TABLE f ( mypixel pixel );
Run Code Online (Sandbox Code Playgroud)

但是,我可以从中创建一个简单的TYPE(无表)吗?

CREATE TYPE pixel ( r "char", g "char", b "char" );
ERROR:  syntax error at or near ""char""
LINE 1: CREATE TYPE pixel ( r "char", g "char", b "char" );
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 5

这只是缺少的关键字AS

CREATE TYPE pixel AS (r "char", g "char", b "char");
Run Code Online (Sandbox Code Playgroud)

数据类型"char"是一个非标准型,主要是为了内部用途。但这只是另一种类型 - 除了名称的特殊拼写,包括双引号以消除歧义char