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)
    );

  • 相关阅读:
    spring mvc配置完后实现下载功能
    表单中Readonly和Disabled的区别(转载)
    EL表达式中fn函数 (转载)
    Spring mvc中@RequestMapping 6个基本用法小结(转载)
    web开发,关于jsp的常见问题,重复提交,防止后退。
    JQuery页面加载
    解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题(转载)
    数据库设计原则(转载)
    dhtmlxTree介绍(转载)
    主键索引
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351451.html
Copyright © 2011-2022 走看看