UNIQUE CHECK IGNORE是PolarDB 8.0.2.2.0及以上版本特有的分区表类型。本文档介绍了创建UNIQUE CHECK IGNORE分区表的方法。

语法

UNIQUE CHECK IGNORE是PolarDB新增的表的table_options的一个属性。创建表时指定UNIQUE CHECK IGNORE=1表示该表忽略分区键的唯一性检查,不再考虑分区键与主键和唯一键的关系,可以选择任意列做分区键。语法如下:
CREATE TABLE [ schema. ]table_name
 table_definition table_options
   PARTITION BY ...
   SUBPARTITION BY ...
其中,table_options中增加了一个选项UNIQUE CHECK IGNORE = { 1| 0 }UNIQUE CHECK IGNORE=1表示主键和唯一键不需要必须包含分区键的所有列,使得分区键的选择更加灵活。但是无法保证数据主键和唯一键在分区间的唯一性,也就是主键和唯一键的唯一性仅在分区内部有效,在分区间不做限制。
说明 表属性UNIQUE CHECK IGNORE只能用于分区表,普通的非分区表添加此属性会报错;UNIQUE CHECK IGNORE为只读属性,您不能修改UNIQUE CHECK IGNORE属性的值。

参数

参数名称 参数说明
table_name 要创建的表名称。

示例

CREATE TABLE t1(
        a INT PRIMARY KEY,
        b INT UNIQUE,
        c INT
    ) UNIQUE CHECK IGNORE=1
    PARTITION BY RANGE(c) (
            PARTITION p0 VALUES LESS THAN (20) ,
            PARTITION p1 VALUES LESS THAN (40) ,
            PARTITION p2 VALUES LESS THAN (60)
    );