日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql1526错误_mysql 分区 1526错误

發(fā)布時(shí)間:2025/3/20 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql1526错误_mysql 分区 1526错误 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考:https://bugs.mysql.com/bug.php?id=52815

簡(jiǎn)而言之就是你建的表分區(qū)最大值不夠用了

如果表有主鍵,那么主鍵必須包含分區(qū)鍵,分區(qū)鍵是主鍵的子集。這個(gè)應(yīng)該算是局限了。

這個(gè)是正確的

CREATE TABLE IF NOT EXISTS `test_hash_part41` (

`id` int(11) NOT NULL ,

`pid` int(11) NOT NULL ,

`comment` varchar(1000) NOT NULL DEFAULT '' ,

`ip` varchar(25) NOT NULL DEFAULT '' ,

PRIMARY KEY (`id`,pid)

) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1

PARTITION BY KEY(id)

PARTITIONS 3;

下面這個(gè)會(huì)ERROR 1503(HY000):A PRIMARY KEY must include all columns inthe table's partitioning function

CREATE TABLE IF NOT EXISTS `test_hash_part42` (

`id` int(11) NOT NULL ,

`pid` int(11) NOT NULL ,

`comment` varchar(1000) NOT NULL DEFAULT '' ,

`ip` varchar(25) NOT NULL DEFAULT '' ,

PRIMARY KEY (`id`)

) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1

PARTITION BY KEY(id,pid)

PARTITIONS 3;

分區(qū)的sql語(yǔ)法

partition_options:

PARTITION BY

{ [LINEAR] HASH(expr)

| [LINEAR] KEY(column_list)

| RANGE(expr)

| LIST(expr) }

[PARTITIONS num]

[SUBPARTITION BY

{ [LINEAR] HASH(expr)

| [LINEAR] KEY(column_list) }

[SUBPARTITIONS num]

]

[(partition_definition [, partition_definition] ...)]

partition_definition:

PARTITION partition_name

[VALUES {LESS THAN {(expr) | MAXVALUE} | IN (value_list)}]

[[STORAGE] ENGINE [=] engine_name]

[COMMENT [=] 'comment_text' ]

[DATA DIRECTORY [=] 'data_dir']

[INDEX DIRECTORY [=] 'index_dir']

[MAX_ROWS [=] max_number_of_rows]

[MIN_ROWS [=] min_number_of_rows]

[TABLESPACE [=] tablespace_name]

[NODEGROUP [=] node_group_id]

[(subpartition_definition [, subpartition_definition] ...)]

subpartition_definition:

SUBPARTITION logical_name

[[STORAGE] ENGINE [=] engine_name]

[COMMENT [=] 'comment_text' ]

[DATA DIRECTORY [=] 'data_dir']

[INDEX DIRECTORY [=] 'index_dir']

[MAX_ROWS [=] max_number_of_rows]

[MIN_ROWS [=] min_number_of_rows]

[TABLESPACE [=] tablespace_name]

[NODEGROUP [=] node_group_id]

例子:

創(chuàng)建range分區(qū)

CREATE TABLE `testpartition` (

`id` int(11) NOT NULL AUTO_INCREMENT ,

`name` varchar(50) NOT NULL ,

`sex` int(1) NOT NULL DEFAULT '0' ,

PRIMARY KEY (`id`)

) ENGINE=Innodb DEFAULT CHARSET=utf8

PARTITION BY RANGE (id) (

PARTITION p0 VALUES LESS THAN (3),

PARTITION p1 VALUES LESS THAN (6),

PARTITION p2 VALUES LESS THAN (9),

PARTITION p3 VALUES LESS THAN (12),

PARTITION p4 VALUES LESS THAN MAXVALUE

);

插入數(shù)據(jù)

INSERT INTO testpartition (`name` ,`sex`)VALUES ('jhh', '0')

,('zhang',1),('ying',1),('aaaa',1),('bbbb',0),('test1',1),('jhh2',1)

,('jhh1',1),('test2',1),('test3',1),('test4',1),('test5',1),('jhh3',1)

,('jhh4',1),('jhh5',1),('jhh6',1),('jhh7',1),('jhh8',1),('jhh9',1)

,('jhh10',1),('jhh11',1),('jhh12',1),('jhh13',1),('jhh21',1),('jhh42',1);

可以drop 某個(gè)分區(qū)alter table drop partition p4 ;

如果是刪除了最大的分區(qū)p4,導(dǎo)致比較大的數(shù)值沒(méi)有相應(yīng)的分區(qū),會(huì)報(bào)如下類(lèi)似錯(cuò)誤的。ERROR1526(HY000):Tablehasnopartitionforvalue.

改變分區(qū),相當(dāng)于重整分區(qū)了。

總結(jié)

以上是生活随笔為你收集整理的mysql1526错误_mysql 分区 1526错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。