Mysql分区表对主键约束等都有一定的限制,下面就对Mysql5.1中Mysql分区表对于主键约束的限制举例进行说明,供您参考学习。
关于Partitioning Keys, Primary Keys, and Unique Keys的限制:
在5.1中Mysql分区表对***约束有明确的规定,每一个***约束必须包含在Mysql分区表的分区键(也包括主键约束)。 这句话也许不好理解,我们做几个实验:
CREATETABLEt1 (idINTNOTNULL, uidINTNOTNULL, PRIMARYKEY(id) ) PARTITIONBYRANGE(id) (PARTITIONp0VALUESLESSTHAN(5)ENGINE=INNODB, PARTITIONp1VALUESLESSTHAN(10)ENGINE=INNODB); CREATETABLEt1 (idINTNOTNULL, uidINTNOTNULL, PRIMARYKEY(id) ) PARTITIONBYRANGE(id) (PARTITIONp0VALUESLESSTHAN(5)ENGINE=MyISAMDATADIRECTORY='/tmp'INDEXDIRECTORY='/tmp', PARTITIONp1VALUESLESSTHAN(10)ENGINE=MyISAMDATADIRECTORY='/tmp'INDEXDIRECTORY='/tmp'); mysql>CREATETABLEt1 ->(idINTNOTNULL, ->uidINTNOTNULL, ->PRIMARYKEY(id), ->UNIQUEKEY(uid) ->) ->PARTITIONBYRANGE(id) ->(PARTITIONp0VALUESLESSTHAN(5), ->PARTITIONp1VALUESLESSTHAN(10) ->); ERROR1503(HY000):AUNIQUEINDEXmustincludeallcolumnsinthetable'spartitioningfunction
【编辑推荐】
MySQL环境变量配置说明
定义MySQL事务的例子
mysql存储过程问题解答
创建MySQL存储过程示例
MYSQL IFNULL函数的使用