zoukankan      html  css  js  c++  java
  • 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)
    );

  • 相关阅读:
    百度云如何免费扩容至2055G?
    OKR学习总结
    layui和bootstrap 对比
    使用马克飞象+印象笔记 如何简单便捷地发表博客?
    Sublime使用记录之SublimeServer插件介绍
    12.RcolorBrewer包
    11.R语言流程
    25.conda 下载安装与运用
    7、purge_haplogs 基因组去冗余
    5.MCScanX 与circos下载、安装、运用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351451.html
Copyright © 2011-2022 走看看