Options 子句

CREATE TABLE 语句的 Options 子句提供创建各类隐藏列的选项。支持行级别审计、基于标签的安全策略、存储位置、分布存储策略、页扩展大小、锁定粒度、用户定义的存取方法和可影响列分布统计信息集合的属性。

Options

表选项的顺序

此语法图显示了包含多个下列选项的 CREATE TABLE 语句中表选项的顺序:
  • WITH 选项
  • SECURITY POLICY 选项
  • 存储选项
  • LOCK MODE 选项
  • USING Access-Method 子句
  • 统计信息选项。

如果您包含了多个 WITH 选项,则在连续的 WITH 选项之间需要逗号分隔符(,)。

有关在分片表的行中使用 WITH ROWIDS 选项的信息,请参阅使用 WITH ROWIDS 选项

同一 CREATE TABLE 语句中的多个 WITH 选项不要求先后顺序,但是您包含的所有的 WITH 选项必须在上述列表中的任何其它五个表选项之前。

例如,下列两个 CREATE TABLE 语句是等价的:
CREATE STANDARD TABLE IF NOT EXISTS myShadowy_tab(colA INT, colB CHAR)
          WITH ERRKEY, WITH CRCOLS, WITH AUDIT LOCK MODE ROW;
          
          CREATE STANDARD TABLE IF NOT EXISTS myShadowy_tab(colA INT, colB CHAR)
          WITH AUDIT, WITH ERRKEY, WITH CRCOLS LOCK MODE ROW;
如果您在相同的数据库中连续发出这些语句,则第二条语句失败,因为第一条语句创建的名为 myShadowy_tab 的表已经在数据库中存在。由于 IF NOT EXISTS 关键字,冗余的第二条语句不会返回错误,但是它不会创建新表。
以下示例发生错误而失败,因为其它 Options 子句不能在 WITH 子句前面:
CREATE TABLE shadow_columns (colA INT, colB CHAR)
          LOCK MODE ROW WITH AUDIT, WITH ERRKEY, WITH CRCOLS; --bad options order
下一个 CREATE TABLE 示例也失败,因为在同一 Options 子句中 Statistics 选项不能在 LOCK MODE 选项前面:
CREATE TABLE shadow_columns (colA INT, colB CHAR)
          STATCHANGE 25 STATLEVEL TABLE LOCK MODE PAGE; --bad options order
重要: 您不能使用 CREATE TABLE 语句的 Options 子句在已经存在的表结构中添加新的隐藏列或做其它更改。要做更改,例如,当创建现有表时,Options 子句包含或忽略 WITH 关键字,使用 ALTER TABLE ADD 或 ALTER TABLE DROP 语句的适当的选项。有关更多信息,请参阅ALTER TABLE 语句
1 GBase 8s 扩展
2 请参阅 存储选项
3 请参阅 LOCK MODE 选项
4 请参阅 USING 存取方法子句
5 请参阅 SECURITY POLICY 子句
6 请参阅 CREATE TABLE 语句的 Statistics 选项