以下の表を作成しようとしていますが、
CREATE TABLE IF NOT EXISTS `hashes` (
`hash` binary(20) NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`category` tinyint(1) unsigned NOT NULL DEFAULT '0',
`indexed` tinyint(1) unsigned NOT NULL DEFAULT '0',
`dcma` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`hash`),
KEY `category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci,
PARTITION BY LIST(`category`)(
PARTITION p0 VALUES IN(0),
PARTITION p1 VALUES IN(1),
PARTITION p2 VALUES IN(2),
PARTITION p3 VALUES IN(3),
PARTITION p4 VALUES IN(4),
PARTITION p5 VALUES IN(5),
PARTITION p6 VALUES IN(6),
);
パーティションは列用category
でありtinyint(1)
、各番号はカテゴリに対応しています。私が理解している限り、列挙型で分割することはできませんが、この方法でうまくいくと思いましたか?
どこが間違っていますか?
編集
エラーは次のとおりです。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PARTITION BY LIST(`category`)( PARTITION p0 VALUES IN(0), PARTITION ' at line 10