前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Table has no partition for value 20190507

Table has no partition for value 20190507

作者头像
MickyInvQ
发布2020-09-27 17:51:27
4.4K0
发布2020-09-27 17:51:27
举报
文章被收录于专栏:InvQ的专栏InvQ的专栏

背景

在我更新表字段的时候,

代码语言:javascript
复制
update table_name set date ='20190507'

发现报错:

代码语言:javascript
复制
[Err] 1526 - Table has no partition for value 20190507

分析

从报错看,partition 字段,敏感的想到,分区表。所以,看下这个表的来历(因为这个表不是我创建的)

发现这个表是根据日期字段的范围进行分区(即 四大分区类型的,Range)。

然后发现这个表最大的字段分区为20180932 (VALUES LESS THAN 中指定的值在判断时候是不包含的,所以是32号 )。

结论,就是说这个分区表不存在。

解决

创建分区表

代码语言:javascript
复制
ALTER TABLE table_name ADD PARTITION (PARTITION p_20190508 VALUES LESS THAN (20190508));

执行成功后:

代码语言:javascript
复制
受影响的行: 0
时间: 0.178s
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

反思

如果没有进行适当的处理,将会报错。所以在进行 RANGE 分区时,要思考这种情况。一般情况下,就时在最后添加一个 MAXVALUE 分区,如下:

代码语言:javascript
复制
PARTITION p_max VALUES LESS THAN MAXVALUE

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 分析
  • 解决
  • 反思
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档