1
以下CREATE TABLE
语句对分区表按预期工作,没有错误。分区和子分区
CREATE TABLE `ox_data_archive_20120108` (
`id` bigint(20) unsigned NOT NULL,
`creativeid` int unsigned NOT NULL,
`zoneid` int unsigned NOT NULL,
`datetime` datetime NOT NULL
) PARTITION BY LIST(to_days(datetime)) (
PARTITION `1Jan10` VALUES IN (to_days('2010-01-01')),
PARTITION `2Jan10` VALUES IN (to_days('2010-01-02')),
PARTITION `3Jan10` VALUES IN (to_days('2010-01-03'))
);
我需要做的是根据date + zoneid创建子分区。我试过如下:
CREATE TABLE mypart (
`id` bigint(20) unsigned NOT NULL,
`creativeid` int unsigned NOT NULL,
`zoneid` int unsigned NOT NULL,
`datetime` datetime NOT NULL
) PARTITION BY LIST(to_days(datetime))
SUBPARTITION BY KEY(zoneid) (
PARTITION `1Jan10` VALUES IN (to_days('2010-01-01'))
(Subpartition s1, Subpartition s2),
PARTITION `2Jan10` VALUES IN (to_days('2010-01-02'))
(Subpartition s3, Subpartition s4),
PARTITION `3Jan10` VALUES IN (to_days('2010-01-03'))
(Subpartition s5, Subpartition s6)
);
插入到这个表:
INSERT INTO mypart VALUES (1, 2, 3, '2012-01-31 04:10:03');
导致以下错误:
ERROR 1526 (HY000): Table has no partition for value 734898
我查询希望使用基于日期的子分区了zoneid。可能吗?
展开“不按预期方式工作”。你能指望什么?究竟发生了什么? – outis 2012-01-14 10:21:40
无法在此表中插入记录#insert into mypart values(1,2,3,'2012-01-31 04:10:03'); #错误1526(HY000):表没有值的分区734898 – shantanuo 2012-01-14 11:29:14
请更新带有错误消息的问题。一般而言,通过更新您的帖子来回应澄清请求,而不是回复评论。首先,如果没有阅读评论,一个问题应该是可以理解的。另一方面,SO是一个质量保证和网站,而不是一个论坛,评论意图不适合(也不适合)讨论。 – outis 2012-01-14 11:47:18