Une primaire doit inclure toutes les colonnes dans la table de partitionnement de l'emplacement de l'erreur?
J'ai essayé de créer un tableau avec la gamme de partitionnement. Mais il affiche l'erreur suivante:
Primaire doit inclure toutes les colonnes dans la table de partitionnement
emplacement.
C'est mon instruction SQL:
CREATE TABLE `tbl_emp_confirmation` (
`fld_id` int(11) NOT NULL AUTO_INCREMENT,
`fldemp_id` varchar(100) DEFAULT NULL,
`fldempname` varchar(100) DEFAULT NULL,
`fldjoindate` varchar(100) DEFAULT NULL,
`fldconfirmdate` Date NOT NULL,
`fldresigndate` varchar(100) DEFAULT NULL,
`fldstatus` varchar(50) DEFAULT NULL,
`fldcon_status` varchar(100) DEFAULT NULL,
UNIQUE KEY `fld_id` (`fld_id`),
KEY `in_empconfirmation` (`fldemp_id`,`fldempname`,`fldjoindate`,`fldconfirmdate`)
) PARTITION BY RANGE ( Month(fldconfirmdate))
(PARTITION p_JAN VALUES LESS THAN (TO_DAYS('2011-01-01')),
PARTITION p_FEB VALUES LESS THAN (TO_DAYS('2011-02-01')),
PARTITION p_MAR VALUES LESS THAN (TO_DAYS('2011-03-01')),
PARTITION p_APR VALUES LESS THAN (TO_DAYS('2011-04-01')),
PARTITION p_MAY VALUES LESS THAN (TO_DAYS('2011-05-01')),
PARTITION p_MAX VALUES LESS THAN MAXVALUE );
OriginalL'auteur Dhileepan | 2012-08-10
Vous devez vous connecter pour publier un commentaire.
Vous êtes le partitionnement de données à l'aide de fldconfirmdate, qui fait partie de votre PK, mais pas une partie de votre CLÉ UNIQUE fld_id.
C'est extraite de la Manuel MySQL:
Ce qui signifie que, ce qui fldconfirmdate d'être une partie de votre CLÉ UNIQUE 'fld_id permettra de résoudre le problème.
Excellente idée; je n'ai pas besoin de compliquer la clé PRIMAIRE de penser que notre base de données pourrait vraiment utiliser certains de partitionnement! Merci pour l'idée
OriginalL'auteur