在mysql中使用区间分区

在mysql中使用区间分区,mysql,Mysql,我正试图用从MicrosoftSQL和Oracle学到的知识来学习MYSQL。我试图在一个表上使用区间分区,但是我没有看到解决我所犯错误的方法 create table telmar_php.call_log ( log_id int not null, sender int, reciever varchar(30) not null, call_duration TIMESTAMP, call_start TIMESTAMP, call_end TIMESTAMP, prima

我正试图用从
MicrosoftSQL
Oracle
学到的知识来学习
MYSQL
。我试图在一个表上使用区间分区,但是我没有看到解决我所犯错误的方法

create table telmar_php.call_log
(
 log_id int not null,
 sender int,
 reciever varchar(30) not null,
 call_duration TIMESTAMP,
 call_start TIMESTAMP,
 call_end TIMESTAMP,
 primary key (log_id),
 foreign key(sender) references number_assigned(sender)
)
partition by RANGE (call_duration) //This is the error line
INTERVAL(NUMTODSINTERVAL(1, 'HOUR')) 
(PARTITION "2015-03-15 00:00:00" VALUES LESS THAN (TO_DATE ('2015-03-16 00', 'YYYY-MM-DD hh24', 'NLS_CALENDAR=GREGORIAN')));

这就是你不能在MYSQL中使用间隔分区的代码

与Oracle不同,MySQL不支持间隔分区。您必须明确定义每个分区。

将允许您使用间隔来定义分区,例如:

创建表
pos_数据(
开始日期,
门店标识号,
库存标识号(6),
销售数量(3)
) 
按范围划分(开始日期)
时间间隔(numtoymenterval(1,'月')
(
分区位置数据p1值小于(截止日期('2007年7月1日,'DD-MM-YYYY')) );

但是,如果要在中进行分区,则必须明确定义每个分区,如下所示:

CREATE TABLE tblemployeepunch(
fld_id int(11)非空自动增量,
fld_date Varchar(15)默认为空,
fld_rawpunchdate varchar(25)默认为空,
fld_rawpunchtime varchar(25)默认为空,
fld_cardno varchar(50)默认为空,
fld_推理卡varchar(20)默认为空,
fld_模式varchar(20)默认为空,
fld_punchdatetime varchar(50)默认为空,
fld_crtdate时间戳非空默认当前_时间戳,
唯一密钥fld_id(fld_id,fld_crtdate),
输入时间表(fld_卡号、fld_punchdatetime、fld_模式、fld_rawpunchtime),
输入密码(fld\U卡号、fld\U rawpunchdate、fld\U punchdatetime)
)
按范围划分(UNIX_时间戳(fld_crtdate))
(分区p_Sep12值小于(UNIX_时间戳('2012-10-01 00:00:00')),
分区p_Oct12值小于(UNIX_时间戳('2012-11-01 00:00:00'),
分区p_Nov12值小于(UNIX_时间戳('2012-12-01 00:00:00'),

分区p_最大值小于最大值)

实际错误是什么?我相信OP得到了这个错误…错误代码:1492。对于范围分区,必须定义每个分区…其语法不正确