Mysql分区表关于主键约束的限制

数据库 MySQL
Mysql分区表有着一定的局限性,在Mysql5.1中,分区表对唯一约束有明确的规定,每一个唯一约束必须包含在Mysql分区表的分区键。

Mysql分区表对主键约束等都有一定的限制,下面就对Mysql5.1中Mysql分区表对于主键约束的限制举例进行说明,供您参考学习。

关于Partitioning Keys, Primary Keys, and Unique Keys的限制:

在5.1中Mysql分区表对***约束有明确的规定,每一个***约束必须包含在Mysql分区表的分区键(也包括主键约束)。
这句话也许不好理解,我们做几个实验:

  1. CREATE TABLE t1    
  2. (      id INT NOT NULL,               
  3.        uid INT NOT NULL,         
  4.        PRIMARY KEY (id)  
  5. )  
  6. PARTITION BY RANGE (id)     
  7. (PARTITION p0 VALUES LESS THAN(5) ENGINE = INNODB,   
  8. PARTITION p1 VALUES LESS THAN(10) ENGINE = INNODB 
  9. );   
  10.  
  11. CREATE TABLE t1     
  12. (      id INT NOT NULL,  
  13.        uid INT NOT NULL,         
  14.        PRIMARY KEY (id)  
  15. )  
  16. PARTITION BY RANGE (id)     
  17. (PARTITION p0 VALUES LESS THAN(5) ENGINE = MyISAM DATA DIRECTORY='/tmp'INDEX DIRECTORY='/tmp',   
  18. PARTITION p1 VALUES LESS THAN(10) ENGINE = MyISAM DATA DIRECTORY='/tmp' INDEX DIRECTORY='/tmp' 
  19. );   
  20.  
  21. mysql> CREATE TABLE t1         
  22.      -> (      id INT NOT NULL,            
  23.      ->        uid INT NOT NULL,   
  24.      ->        PRIMARY KEY (id),      
  25.      ->        UNIQUE KEY (uid)      
  26.      -> )      
  27.      -> PARTITION BY RANGE (id)        
  28.      -> (PARTITION p0 VALUES LESS THAN(5),     
  29.      ->  PARTITION p1 VALUES LESS THAN(10)     
  30.      -> );  
  31. ERROR 1503 (HY000): A UNIQUE INDEX must include all columns in the table's partitioning function  

 


 

 

【编辑推荐】

MySQL环境变量配置说明

定义MySQL事务的例子

mysql存储过程问题解答

创建MySQL存储过程示例

MYSQL IFNULL函数的使用

责任编辑:段燃 来源: 互联网
相关推荐

2010-10-11 10:16:17

Mysql分区表

2010-11-22 15:06:46

MySQL分区表

2009-06-24 10:26:41

Oracle约束分区表

2023-10-11 13:42:21

2010-11-22 15:00:01

Mysql分区表

2021-01-20 08:07:52

oracle分区单表

2017-08-30 16:59:54

PostgreSQL分区表

2016-09-23 09:29:08

mysq分区表l互联网

2019-03-04 13:54:18

MySQL分区表数据

2021-04-19 08:16:38

Hive数据类型大数据技术

2010-10-11 10:52:25

MySQL分区

2022-01-11 08:46:56

Oracle 在线重定义数据库

2009-08-17 08:35:22

Linux挂载分区表fstab

2021-09-07 17:54:04

OpenGauss分区表索引

2010-04-19 14:01:22

Oracle查看分区表

2021-03-08 22:22:20

MySQL分区表SQL

2011-07-20 16:03:06

SQL Server数分区表

2017-09-11 19:07:00

MySQLMySQL 5.7分区表

2010-10-15 14:39:55

MySQL单表大小

2011-04-11 11:32:29

Oracle分区表磁盘IO冲突
点赞
收藏

51CTO技术栈公众号