关于mysql分区问题

ad2008 2007-12-06 12:18:55
加精
下面的语句老是报错


CREATE TABLE IF NOT EXISTS `users` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` char(32) NOT NULL,
`email` varchar(100) NOT NULL,
`idcard` varchar(18) NOT NULL,
`usertype` tinyint(1) NOT NULL DEFAULT '0',
`userface` varchar(20) DEFAULT '0',
`regdate` int(10) DEFAULT NULL,
`lasttime` int(10) DEFAULT NULL,
`lastip` varchar(20) DEFAULT NULL,
`logintimes` int(10) DEFAULT '0',
`stones` int(10) DEFAULT '0',
`stonespw` varchar(50) NOT NULL DEFAULT '0',
`credits` int(10) DEFAULT '0',
`upid` int(15) NOT NULL DEFAULT '0',
`islocked` tinyint(1) DEFAULT '0',
`protection` char(1) DEFAULT '0',
`forumqx` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
partition by range (regdate)
(PARTITION p0 VALUES LESS THAN (20070801),
PARTITION p1 VALUES LESS THAN (20070901),
PARTITION p2 VALUES LESS THAN (20071001),
PARTITION p3 VALUES LESS THAN (20071101),
PARTITION p4 VALUES LESS THAN (20071201),
PARTITION p5 VALUES LESS THAN (20070701),
PARTITION p6 VALUES LESS THAN MAXVALUE );
...全文
542 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouhaifeng2012 2010-09-02
  • 打赏
  • 举报
回复
收藏。。学习。
lilinew 2010-08-06
  • 打赏
  • 举报
回复
CREATE TABLE IF NOT EXISTS `users` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` char(32) NOT NULL,
`email` varchar(100) NOT NULL,
`idcard` varchar(18) NOT NULL,
`usertype` tinyint(1) NOT NULL DEFAULT '0',
`userface` varchar(20) DEFAULT '0',
`regdate` int(10) DEFAULT NULL,
`lasttime` int(10) DEFAULT NULL,
`lastip` varchar(20) DEFAULT NULL,
`logintimes` int(10) DEFAULT '0',
`stones` int(10) DEFAULT '0',
`stonespw` varchar(50) NOT NULL DEFAULT '0',
`credits` int(10) DEFAULT '0',
`upid` int(15) NOT NULL DEFAULT '0',
`islocked` tinyint(1) DEFAULT '0',
`protection` char(1) DEFAULT '0',
`forumqx` tinyint(1) NOT NULL DEFAULT '0',
KEY `idx_userid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
partition by range (regdate)
(PARTITION p5 VALUES LESS THAN (20070701),
PARTITION p0 VALUES LESS THAN (20070801),
PARTITION p1 VALUES LESS THAN (20070901),
PARTITION p2 VALUES LESS THAN (20071001),
PARTITION p3 VALUES LESS THAN (20071101),
PARTITION p4 VALUES LESS THAN (20071201),
PARTITION p6 VALUES LESS THAN MAXVALUE );
chaing 2008-10-30
  • 打赏
  • 举报
回复
最好在mysql的命令行上使用分区,用phpmyadmin可能会出错,也许是phpmyadmin版本问题.
a419702771 2008-08-01
  • 打赏
  • 举报
回复
唉。。我的也是一样。。。。。。。1500万数据。查询不出来。。。唉。惨。。
懒得去死 2007-12-07
  • 打赏
  • 举报
回复
加精了。希望以后分区入门的兄弟可以借鉴。
懒得去死 2007-12-06
  • 打赏
  • 举报
回复
MYSQL 分区暂时还不支持自增ID

CREATE TABLE IF NOT EXISTS `users` (
`uid` int(10) NOT NULL,
`username` varchar(50) NOT NULL,
`password` char(32) NOT NULL,
`email` varchar(100) NOT NULL,
`idcard` varchar(18) NOT NULL,
`usertype` tinyint(1) NOT NULL DEFAULT '0',
`userface` varchar(20) DEFAULT '0',
`regdate` int(10) DEFAULT NULL,
`lasttime` int(10) DEFAULT NULL,
`lastip` varchar(20) DEFAULT NULL,
`logintimes` int(10) DEFAULT '0',
`stones` int(10) DEFAULT '0',
`stonespw` varchar(50) NOT NULL DEFAULT '0',
`credits` int(10) DEFAULT '0',
`upid` int(15) NOT NULL DEFAULT '0',
`islocked` tinyint(1) DEFAULT '0',
`protection` char(1) DEFAULT '0',
`forumqx` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
partition by range (regdate)
(PARTITION p5 VALUES LESS THAN (20070701),
PARTITION p0 VALUES LESS THAN (20070801),
PARTITION p1 VALUES LESS THAN (20070901),
PARTITION p2 VALUES LESS THAN (20071001),
PARTITION p3 VALUES LESS THAN (20071101),
PARTITION p4 VALUES LESS THAN (20071201),
PARTITION p6 VALUES LESS THAN MAXVALUE );
ad2008 2007-12-06
  • 打赏
  • 举报
回复
o,好的,谢了
懒得去死 2007-12-06
  • 打赏
  • 举报
回复
如果是你的版本问题的话。去MYSQL官方论坛问问。
ad2008 2007-12-06
  • 打赏
  • 举报
回复
我也觉得应该可以创建的,但就是报错,不知道咋回事
看是不是版本的问题呢,我的mysql版本是:5.1.12-beta
懒得去死 2007-12-06
  • 打赏
  • 举报
回复
PS :

如果是MYISAM表的话,用MERGE引擎就可以了。不用分区。
INNODB表用分区好点。
懒得去死 2007-12-06
  • 打赏
  • 举报
回复
我这里没有的错误:


mysql> CREATE TABLE IF NOT EXISTS `users` (
-> `uid` int(10) NOT NULL,
-> `username` varchar(50) NOT NULL,
-> `password` char(32) NOT NULL,
-> `email` varchar(100) NOT NULL,
-> `idcard` varchar(18) NOT NULL,
-> `usertype` tinyint(1) NOT NULL DEFAULT '0',
-> `userface` varchar(20) DEFAULT '0',
-> `regdate` int(10) DEFAULT NULL,
-> `lasttime` int(10) DEFAULT NULL,
-> `lastip` varchar(20) DEFAULT NULL,
-> `logintimes` int(10) DEFAULT '0',
-> `stones` int(10) DEFAULT '0',
-> `stonespw` varchar(50) NOT NULL DEFAULT '0',
-> `credits` int(10) DEFAULT '0',
-> `upid` int(15) NOT NULL DEFAULT '0',
-> `islocked` tinyint(1) DEFAULT '0',
-> `protection` char(1) DEFAULT '0',
-> `forumqx` tinyint(1) NOT NULL DEFAULT '0'
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8
-> partition by range (regdate)
-> (PARTITION p5 VALUES LESS THAN (20070701),
-> PARTITION p0 VALUES LESS THAN (20070801),
-> PARTITION p1 VALUES LESS THAN (20070901),
-> PARTITION p2 VALUES LESS THAN (20071001),
-> PARTITION p3 VALUES LESS THAN (20071101),
-> PARTITION p4 VALUES LESS THAN (20071201),
-> PARTITION p6 VALUES LESS THAN MAXVALUE );
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| fish |
| t11 |
| t233 |
| users |
+----------------+
4 rows in set (0.00 sec)

mysql> show create table users\G
*************************** 1. row ***************************
Table: users
Create Table: CREATE TABLE `users` (
`uid` int(10) NOT NULL,
`username` varchar(50) NOT NULL,
`password` char(32) NOT NULL,
`email` varchar(100) NOT NULL,
`idcard` varchar(18) NOT NULL,
`usertype` tinyint(1) NOT NULL DEFAULT '0',
`userface` varchar(20) DEFAULT '0',
`regdate` int(10) DEFAULT NULL,
`lasttime` int(10) DEFAULT NULL,
`lastip` varchar(20) DEFAULT NULL,
`logintimes` int(10) DEFAULT '0',
`stones` int(10) DEFAULT '0',
`stonespw` varchar(50) NOT NULL DEFAULT '0',
`credits` int(10) DEFAULT '0',
`upid` int(15) NOT NULL DEFAULT '0',
`islocked` tinyint(1) DEFAULT '0',
`protection` char(1) DEFAULT '0',
`forumqx` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 /*!50100 PARTITION BY RANGE (regdate) (PARTITION p5 VALUES LESS THAN (20070701) ENGINE = MyISAM, PARTITION p0 VALUES LESS THAN (20070801) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (20070901) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (20071001) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (20071101) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN (20071201) ENGINE = MyISAM, PARTITION p6 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
1 row in set (0.00 sec)

mysql> select version()\G
*************************** 1. row ***************************
version(): 5.1.21-beta
1 row in set (0.00 sec)

ad2008 2007-12-06
  • 打赏
  • 举报
回复
还是报错

#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 range (regdate)

56,687

社区成员

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

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