Table has no partition for value 20190507

时间:2022-07-25
本文章向大家介绍Table has no partition for value 20190507,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

背景

在我更新表字段的时候,

update table_name set date ='20190507'

发现报错:

[Err] 1526 - Table has no partition for value 20190507

分析

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

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

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

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

解决

创建分区表

ALTER TABLE table_name ADD PARTITION (PARTITION p_20190508 VALUES LESS THAN (20190508));

执行成功后:

受影响的行: 0
时间: 0.178s

反思

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

PARTITION p_max VALUES LESS THAN MAXVALUE

参考