如何创建月分区
CREATE TABLE `now_articles` (
`articleId` bigint(19) NOT NULL AUTO_INCREMENT,
`author` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL DEFAULT '',
`title_md5` varchar(35) NOT NULL,
`description` longtext NOT NULL,
`url` varchar(255) NOT NULL,
`urltoImage` varchar(255) NOT NULL,
`publishedAt` datetime NOT NULL,
`source` varchar(255) NOT NULL,
`sub_source_name` varchar(255) NOT NULL,
`categories` varchar(255) NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`keywords` varchar(255) NOT NULL,
`categoryOrder` enum('0','1','-1') DEFAULT '0',
`homeOrder` enum('0','1','-1') DEFAULT '0',
PRIMARY KEY (`articleId`),
UNIQUE KEY `title_md5` (`title_md5`),
KEY `categories` (`categories`),
KEY `source` (`source`),
KEY `publishedAt` (`publishedAt`)
) ENGINE=MyISAM
答案 0 :(得分:0)
我没有5.6,但在5.7中,alter table的正确语法是
alter table now_articles 分段哈希(月(发表)) PARTITIONS 12;
但是当你运行它时会出现两个错误
ERROR 1503(HY000):PRIMARY KEY必须包含表格分区功能中的所有列 ERROR 1503(HY000):唯一索引必须包含表格分区功能中的所有列
这意味着您必须修改主要和唯一键以包含publishedat。
答案 1 :(得分:0)
您可以每个月使用任何脚本语言PHP或Python通过con job重命名表。
之后创建具有给定结构的相同表。 我希望它可以帮助你。