openGauss SQL参考—SQL语法:CREATE TABLE PARTITION(2)

参数说明

  • IF NOT EXISTS

    如果已经存在相同名称的表,不会抛出一个错误,而会发出一个通知,告知表关系已存在。

  • partition_table_name

    分区表的名称。

    取值范围:字符串,要符合标识符的命名规范。

  • column_name

    新表中要创建的字段名。

    取值范围:字符串,要符合标识符的命名规范。

  • data_type

    字段的数据类型。

  • COLLATE collation

    COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用“select * from pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。

  • CONSTRAINT constraint_name

    列约束或表约束的名称。可选的约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成功插入或更新。

    定义约束有两种方法:

    • 列约束:作为一个列定义的一部分,仅影响该列。
    • 表约束:不和某个列绑在一起,可以作用于多个列。在B模式数据库下(即sql_compatibility = 'B')constraint_name为可选项,在其他模式数据库下,必须加上constraint_name。
  • index_name

    索引名。

     须知:

    • index_name仅在B模式数据库下(即sql_compatibility = 'B')支持,其他模式数据库下不支持。
    • 对于外键约束,constraint_name和index_name同时指定时,索引名为constraint_name。
    • 对于唯一键约束,constraint_name和index_name同时指定时,索引名以index_name。
  • USING method

    指定创建索引的方法。

    取值范围参考参数说明中的USING method。

     须知:

    • USING method仅在B模式数据库下(即sql_compatibility = 'B')支持,其他模式数据库下不支持。
    • 在B模式下,未指定USING method时,对于ASTORE的存储方式,默认索引方法为btree;对于USTORE的存储方式,默认索引方法为ubtree。
  • ASC | DESC

    ASC表示指定按升序排序(默认)。DESC指定按降序排序。

     须知:

    ASC|DESC只在B模式数据库下(即sql_compatibility = 'B')支持,其他模式数据库不支持。

  • LIKE source_table [ like_option … ]

    LIKE子句声明一个表,新表自动从这个表里面继承所有字段名及其数据类型和非空约束。

    和INHERITS不同,新表与原来的表之间在创建动作完毕之后是完全无关的。在源表做的任何修改都不会传播到新表中,并且也不可能在扫描源表的时候包含新表的数据。

    • 字段缺省表达式只有在声明了INCLUDING DEFAULTS之后才会包含进来。缺省是不包含缺省表达式的,即新表中所有字段的缺省值都是NULL。
    • 如果指定了INCLUDING GENERATED,则源表列的生成表达式会复制到新表中。默认不复制生成表达式。
    • 非空约束将总是复制到新表中,CHECK约束则仅在指定了INCLUDING CONSTRAINTS的时候才复制,而其他类型的约束则永远也不会被复制。此规则同时适用于表约束和列约束。
    • 和INHERITS不同,被复制的列和约束并不使用相同的名称进行融合。如果明确的指定了相同的名称或者在另外一个LIKE子句中,将会报错。
    • 如果指定了INCLUDING INDEXES,则源表上的索引也将在新表上创建,默认不建立索引。
    • 如果指定了INCLUDING STORAGE,则源表列的STORAGE设置也将被拷贝,默认情况下不包含STORAGE设置。
    • 如果指定了INCLUDING COMMENTS,则源表列、约束和索引的注释也会被拷贝过来。默认情况下,不拷贝源表的注释。
    • 如果指定了INCLUDING RELOPTIONS,则源表的存储参数(即源表的WITH子句)也将拷贝至新表。默认情况下,不拷贝源表的存储参数。
    • INCLUDING ALL包含了INCLUDING DEFAULTS、INCLUDING CONSTRAINTS、INCLUDING INDEXES、INCLUDING STORAGE、INCLUDING COMMENTS、INCLUDING PARTITION和INCLUDING RELOPTIONS的内容。
  • AUTO_INCREMENT [ = ] value

    这个子句为自动增长列指定一个初始值,value必须为正整数,不得超过2127-1。

     须知:

    该子句仅在参数sql_compatibility=B时有效。

  • [ DEFAULT ] CHARACTER SET | CHARSET [ = ] default_charset ]

    指定模式的默认字符集,单独指定时会将模式的默认字符序设置为指定的字符集的默认字符序。

  • [ [ DEFAULT ] COLLATE [ = ] default_collation

    指定模式的默认字符序,单独指定时会将模式的默认字符集设置为指定的字符序对应的字符集。

  • WITH ( storage_parameter [= value] [, … ] )

    这个子句为表或索引指定一个可选的存储参数。参数的详细描述如下所示:

    • FILLFACTOR

      一个表的填充因子(fillfactor)是一个介于10和100之间的百分数。100(完全填充)是默认值。如果指定了较小的填充因子,INSERT操作仅按照填充因子指定的百分率填充表页。每个页上的剩余空间将用于在该页上更新行,这就使得UPDATE有机会在同一页上放置同一条记录的新版本,这比把新版本放置在其他页上更有效。对于一个从不更新的表将填充因子设为100是最佳选择,但是对于频繁更新的表,选择较小的填充因子则更加合适。该参数对于列存表没有意义。

      取值范围:10~100

    • ORIENTATION

      决定了表的数据的存储方式。

      取值范围:

      • COLUMN:表的数据将以列式存储。

      • ROW(缺省值):表的数据将以行式存储。

         须知:

        orientation不支持修改。

    • COMPRESSTYPE

      行存表参数,设置行存表压缩算法。1代表pglz算法(不推荐使用),2代表zstd算法,默认不压缩。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。(仅支持ASTORE和USTORE下的普通表和分区表)

      取值范围:0~2,默认值为0。

    • COMPRESS_LEVEL

      行存表参数,设置行存表压缩算法等级,仅当COMPRESSTYPE为2时生效。压缩等级越高,表的压缩效果越好,表的访问速度越慢。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。

      取值范围:-31~31,默认值为0。

    • COMPRESS_CHUNK_SIZE

      行存表参数,设置行存表压缩chunk块大小,仅当COMPRESSTYPE不为0时生效。chunk数据块越小,预期能达到的压缩效果越好,同时数据越离散,影响表的访问速度。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。 取值范围:与页面大小有关。在页面大小为8k场景,取值范围为:512、1024、2048、4096。

      默认值:4096

    • COMPRESS_PREALLOC_CHUNKS

      行存表参数,设置行存表压缩chunk块预分配数量。预分配数量越大,表的压缩率相对越差,离散度越小,访问性能越好。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。

      取值范围:0~7,默认值为0。

      • 当COMPRESS_CHUNK_SIZE为512和1024时,支持预分配设置最大为7。
      • 当COMPRESS_CHUNK_SIZE为2048时,支持预分配设置最大为3。
      • 当COMPRESS_CHUNK_SIZE为4096时,支持预分配设置最大为1。
    • COMPRESS_BYTE_CONVERT

      行存表参数,设置行存表压缩字节转换预处理,仅当COMPRESSTYPE不为0时生效。在一些场景下可以提升压缩效果,同时会导致一定性能劣化。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。

      取值范围:布尔值,默认关闭。

    • COMPRESS_DIFF_CONVERT

      行存表参数,设置行存表压缩字节差分预处理。只能与compress_byte_convert一起使用。在一些场景下可以提升压缩效果,同时会导致一定性能劣化。该参数允许修改, 修改对已有数据、变更数据、新增数据同时生效。

      取值范围:布尔值,默认关闭。

    • STORAGE_TYPE

      指定存储引擎类型,该参数设置成功后就不再支持修改。

      取值范围:

      • USTORE,表示表支持Inplace-Update存储引擎。特别需要注意,使用USTORE表,必须要开启track_counts和track_activities参数,否则会引起空间膨胀。

      • ASTORE,表示表支持Append-Only存储引擎。

      默认值: 不指定表时,默认是Append-Only存储。

    • COMPRESSION

      • 列存表的有效值为LOW/MIDDLE/HIGH/YES/NO,压缩级别依次升高,默认值为LOW。
      • 行存表不支持压缩。
    • MAX_BATCHROW

      指定了在数据加载过程中一个存储单元可以容纳记录的最大数目。该参数只对列存表有效。

      取值范围:10000~60000,默认60000。

    • PARTIAL_CLUSTER_ROWS

      指定了在数据加载过程中进行将局部聚簇存储的记录数目。该参数只对列存表有效。

      取值范围:大于等于MAX_BATCHROW,建议取值为MAX_BATCHROW的整数倍数。

    • DELTAROW_THRESHOLD

      预留参数。该参数只对列存表有效。

      取值范围:0~9999

    • segment

      使用段页式的方式存储。本参数仅支持行存表。不支持列存表、临时表、unlog表。不支持ustore存储引擎。

      取值范围:on/off

      默认值:off

posted @ 2024-07-26 11:02  openGauss-bot  阅读(9)  评论(0)    收藏  举报