MYSQL的分区字段必须包含主键-介绍以及解决方法
来源:互联网 发布:刘邦知乎 编辑:程序博客网 时间:2024/06/04 18:50
通过对分区知识的学习,终于展开实践,可是发现出师不利,对于别人提供的例子复制改改发现出现了问题。
别人的例子:
CREATE TABLE employee(id INT NOT NULL,
fname VARCHAR(30),Iname VARCHAR(30),job_code INT NOT NULL,
store_id INT NOT )PARTITION BY RANGE (store_id)(
PARTITION p0 VALUES LESS THAN (2),PARTITION p1 VALUES LESS THAN (3),
PARTITION p2 VALUES LESS THAN MAXVALUE);
我的sql语句:
CREATE TABLE `tb_famenshidu2` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`famenid` INT(11) ,
`shidu` VARCHAR(30) ,
`time` DATETIME ,
`flag` VARCHAR(2) ,
PRIMARY KEY (`id`)
)PARTITION BY RANGE (famenid)(
PARTITION p0 VALUES LESS THAN (2),PARTITION p1 VALUES LESS THAN (3),
PARTITION p2 VALUES LESS THAN MAXVALUE);
报错:A primary key must include all columns in the table's partitioning function
也就是报错说 你的分区字段不包括主键,查看mysql手册有了更深的认识:
解决一:发现别人的例子,没有主键的,所以我也尝试这样解决:
CREATE TABLE `tb_famenshidu1` (
`id` INT(40) NOT NULL AUTO_INCREMENT,
`famenid` INT(11) NOT NULL,
`shidu` VARCHAR(30) DEFAULT NULL,
`time` DATETIME DEFAULT NULL,
`flag` VARCHAR(2) DEFAULT NULL,
KEY `id` (`id`)
) ENGINE=INNODB AUTO_INCREMENT=84389 DEFAULT CHARSET=gbk
PARTITION BY RANGE (famenid)
(PARTITION p0 VALUES LESS THAN (2) ENGINE = INNODB,
PARTITION p1 VALUES LESS THAN (3) ENGINE = INNODB,
PARTITION p2 VALUES LESS THAN (4) ENGINE = INNODB,
PARTITION p3 VALUES LESS THAN MAXVALUE ENGINE = INNODB ) ;
我用jdbc向数据库插入数据发现正常,修改hibernate的配置,去除主键映射后发现,提取信息也是正确的,所以在不影响功能的前天下去掉主键为一种方法吧。
查看分区
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM information_schema.partitions WHERE
table_schema = SCHEMA()
AND table_name='tb_famenshidu1';
解决二:复合键
- MYSQL的分区字段必须包含主键-介绍以及解决方法
- MYSQL的分区字段,必须包含在主键字段内
- MYSQL的分区字段,必须包含在主键字段内
- MYSQL的分区字段,必须包含在主键字段内 (重要)
- 分区表主键索引分区的前提是包含分区字段或本身就是分区字段
- mysql 创建分区表注意事项,每一个唯一约束必须包含在Mysql分区表的分区键(也包括主键约束)。
- 为什么主键分区必须加分区键?
- MySQL表为什么必须有主键 -- 聚集索引的简单介绍
- MySQL常用分区方式及分区主键的添加
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- mysql分区功能详细介绍,以及实例
- 【转】再谈重入锁--ReentrantLock
- 【转】Java基本概念:集合类 List/Set/Map...的区别
- js解析JSON
- 【转】Notepad++ 中文查找(中文搜索)问题解决方法
- struct: Backing Field for Automatically Implemented Property [Text] must be Fully Assigned..
- MYSQL的分区字段必须包含主键-介绍以及解决方法
- 【转】从JVM内存管理的角度谈谈静态方法和静态属性
- 一批成功的美国50岁的人被采访:什么是你希望你25岁时有过来人告诉你的话。最多的三个回答
- 显示器恢复出厂设置 详细步骤
- 【转】精通IntelliJ Idea之热部署
- 抽烟的注意事项
- C++开发工具的常用插件
- 【转】VS2008中的自定义格式化代码
- android 程序启动界面的短暂黑屏解决办法