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函数的使用