56,912
社区成员




CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)
PARTITION BY RANGE ( datediff(separated,now()) ) (
PARTITION p0 VALUES LESS THAN 45,
PARTITION p1 VALUES LESS THAN 800,
PARTITION p2 VALUES LESS THAN 2001,
PARTITION p3 VALUES LESS THAN MAXVALUE
);
ERROR 1064 (42000): Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed near ') (
PARTITION p0 VALUES LESS THAN 45,
PARTITION p1 VALUES LESS THAN 800,' at line 10
mysql> CREATE TABLE employees (
-> id INT NOT NULL,
-> fname VARCHAR(30),
-> lname VARCHAR(30),
-> hired DATE NOT NULL DEFAULT '1970-01-01',
-> separated DATE NOT NULL DEFAULT '9999-12-31',
-> job_code INT,
-> store_id INT
-> )
-> PARTITION BY RANGE ( datediff(separated,'2013-01-01') ) (
-> PARTITION p0 VALUES LESS THAN 45,
-> PARTITION p1 VALUES LESS THAN 800,
-> PARTITION p2 VALUES LESS THAN 2001,
-> PARTITION p3 VALUES LESS THAN MAXVALUE
-> );
ERROR 1064 (42000): 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 '45,
PARTITION p1 VALUES LESS THAN 800,
PARTITION p2 VALUES LESS THAN 200' at line 11
报别的错误,其实我的目的就是创建一个分区表,p1 保留最近45 天的数据,超过45天自动到p2..