• 19.6.1 Partitioning Keys, Primary Keys, and Unique Keys 分区键,主键,和唯一健


    19.6.1 Partitioning Keys, Primary Keys, and Unique Keys 分区键,主键,和唯一健

    本节讨论了分区键使用主键和唯一键的关系,管理这种关系的规则可以表示如下:

    所有列用于分区表达式 必须是唯一健的一部分:

    换句话说,表中的每一个唯一索引必须使用表的分区表达式的每一个列(这也包括表的主键,因为它也是定义为一个唯一键)

    例如, 下面的表创建语句无效:

    mysql> CREATE TABLE t1 (
    -> col1 INT NOT NULL,
    -> col2 DATE NOT NULL,
    -> col3 INT NOT NULL,
    -> col4 INT NOT NULL,
    -> UNIQUE KEY (col1, col2)
    -> )
    -> PARTITION BY HASH(col3)
    -> PARTITIONS 4;
    ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table’s partitioning function

    一个主键必须包含分区函数所有的列

    在每一种情况下,涉及的表至少有一个唯一键,没有包含分区表达式所有的列。

    下面的每一个语句都是有效的:
    CREATE TABLE t1 (
    col1 INT NOT NULL,
    col2 DATE NOT NULL,
    col3 INT NOT NULL,
    col4 INT NOT NULL,
    UNIQUE KEY (col1, col2, col3)
    )
    PARTITION BY HASH(col3)
    PARTITIONS 4;

    CREATE TABLE t2 (
    col1 INT NOT NULL,
    col2 DATE NOT NULL,
    col3 INT NOT NULL,
    col4 INT NOT NULL,
    UNIQUE KEY (col1, col3)
    )
    PARTITION BY HASH(col1 + col3)
    PARTITIONS 4;

    mysql> CREATE TABLE t3 (
    -> col1 INT NOT NULL,
    -> col2 DATE NOT NULL,
    -> col3 INT NOT NULL,
    -> col4 INT NOT NULL,
    -> UNIQUE KEY (col1, col2),
    -> UNIQUE KEY (col3)
    -> )
    -> PARTITION BY HASH(col1 + col3)
    -> PARTITIONS 4;
    ERROR 1491 (HY000): A PRIMARY KEY must include all columns in the table’s partitioning function

    创建表失败 因为col1 和col3 都被包含在分区键,但是 那些列都不是表的唯一键的一部分:解决方法如下:

    mysql> CREATE TABLE t3 (
    -> col1 INT NOT NULL,
    -> col2 DATE NOT NULL,
    -> col3 INT NOT NULL,
    -> col4 INT NOT NULL,
    -> UNIQUE KEY (col1, col2, col3),
    -> UNIQUE KEY (col3)
    -> )
    -> PARTITION BY HASH(col3)
    -> PARTITIONS 4;
    Query OK, 0 rows affected (0.05 sec)

    下面的表不能被分区,因为没有办法包括在分区键,任何的列都属于唯一索引:
    CREATE TABLE t4 (
    col1 INT NOT NULL,
    col2 INT NOT NULL,
    col3 INT NOT NULL,
    col4 INT NOT NULL,
    UNIQUE KEY (col1, col3),
    UNIQUE KEY (col2, col4)
    );

  • 相关阅读:
    Hive Window安装 (Hadoop)
    springboot+hbase 新增记录
    springboot+hbase 表记录新增
    如何通过EasyDSS将素材推送到快手和抖音平台
    EasyDSS平台如何通过接口在特定的视频分类里上传点播文件?
    EasyDSS点播服务分享时间出错如何修改?
    EasyDSS问题及解决方案汇总
    操作教程:EasyDSS如何将MP4点播文件转化成RTSP视频流?
    解答:EasyDSS视频点播时音频是否可以设置为默认开启?
    EasyDSS部署在C盘,录像回看无法正常播放该如何解决?
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351451.html
Copyright © 2020-2023  润新知