使用 CREATE TABLE 语句的列定义部分列出新表的单列的名称和数据类型(可选的缺省值以及约束或安全标签)。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
column | 表中列的名称 | 在此表中必须是唯一的 | 标识符 |
由于行的最大大小是 32,767 字节,所以表中最多只能有大约 97 列可以是 COLLECTION 数据类型(SET 、LIST 和 MULTISET)。表中最多大约有195 列可以是数据类型 BYTE 、TEXT 、ROW 、LVARCHAR 、NVARCHAR 、VARCHAR 和可变长度的 UDT。(此处的 195 列是使用 2 KB 基本页大小的平台的最低的近似值。对于 4 KB 基本页大小的平台,如 Windows™ 和 AIX® 系统,这些数据类型的上限值大约为 450 列。)
这些数据类型的列的数目的上限还取决于描述数据库服务器存储在同一分区的表的其它数据。对于某些表,列数的最大值可能很小,如果压缩和存储在磁盘上的所有的 SQL 标识符(包括数据库名称、表名称和索引名称)的聚合长度减少了用于列的可用空间,则最大列数可能变小。
除非将 SQL_LOGICAL_CHAR 配置参数设置为在数据类型定义中的启用逻辑字符语义,否则内置字符类型列(如 CHAR 、LVARCHAR 、NCHAR 、NVARCHAR 或 VARCHAR)的任何显式或缺省存储大小规范以字节为单位进行解释。
-1279: Value exceeds string column length.
请参阅 GBase 8s 管理员参考手册 中有关 SQL_LOGICAL_CHAR 配置参数的描述,以获取有关设置在多字节代码集(如,UTF-8)的语言环境中的效果的更多信息,其中单个逻辑字符可能需要多个字节的存储空间。
与任何 SQL 标识符一样,如果列名称是关键字,或者与表的名称相同,或者您以后与其它表一起使用的的另一个表的名称,则可能发生语义模糊(有时还会出现错误消息或意外行为)。有关 GBase 8s 的关键字的信息,请参阅 GBase 8s 的 SQL 关键字。
如果您将表的一列定义为已命名的 ROW 类型,则该表不会采用该已命名的 ROW 的任何约束。