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