L'instruction CREATE TABLE
suivante pour partitionner une table fonctionne comme prévu, sans erreur.partitions et sous-partitions
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'))
);
Ce que je dois faire est de créer des sous-partitions basées sur date + zoneid. J'ai essayé les éléments suivants:
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)
);
Insertion dans ce tableau:
INSERT INTO mypart VALUES (1, 2, 3, '2012-01-31 04:10:03');
résultats dans l'erreur suivante:
ERROR 1526 (HY000): Table has no partition for value 734898
Ma requête prévoit utiliser la sous-partition IDZone en fonction des dates. C'est possible?
Développer sur "ne fonctionne pas comme prévu". Qu'attendez-vous? Qu'est-ce qui se passe réellement? – outis
Impossible d'insérer des enregistrements dans cette table # insert dans les valeurs mypart (1, 2, 3, '2012-01-31 04:10:03'); # ERREUR 1526 (HY000): La table n'a pas de partition pour la valeur 734898 – shantanuo
Veuillez mettre à jour la question avec le message d'erreur. En général, répondez aux demandes de clarifications en mettant à jour votre message, plutôt que de répondre par un commentaire. D'une part, une question devrait être compréhensible sans lire les commentaires. Pour un autre, SO est un AQ et un site, pas un forum, et les commentaires ne sont pas destinés (et ne sont pas bien adaptés) pour les discussions. – outis