关于mysql的按字符字段按月分区的问题

lyl2003 2019-10-13 08:00:58
大家好,我有一张流水表,表里的日期都是char(8)位的,我想用此字段(trandate)进行按月分区,如下:
CREATE TABLE `accounting` (
id INT NOT NULL AUTO_INCREMENT,
`trandate` char(8) NOT NULL DEFAULT '',
`uid` varchar(20) NOT NULL DEFAULT '',
`terminal` varchar(20) DEFAULT NULL,
`client_ip` varchar(16) NOT NULL DEFAULT '',
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

PARTITION BY RANGE (to_days(trandate)) (
PARTITION p201409 VALUES LESS THAN (to_days('2014-10-01')),
PARTITION p201410 VALUES LESS THAN (to_days('2014-11-01')),
PARTITION p201411 VALUES LESS THAN (to_days('2014-12-01'));


但此语句一直建表失败,不知道为啥,请各位大侠相助,谢谢!
...全文
132 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
两个地方错误 第一句 id INT NOT NULL AUTO_INCREMENT , 主键定义要加上primary key 正确写法 id INT NOT NULL AUTO_INCREMENT primary key, 第二句 `client_ip` varchar(16) NOT NULL DEFAULT '', 这一句多了个","号
AHUA1001 2019-10-14
  • 打赏
  • 举报
回复
我这里没有MYSQL的环境,所以不能执行您的脚本。 可以把所有的to_days函数都去掉试试看。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧