The reason for this does not work is not so clear, I suspect an error in the documentation or in the error message. The error you get is inappropriate in my opinion.
According to the manual:
The following invalid constructs when splitting an expression:
- Stored procedures, stored functions, UDF or plugins.
- Declared variables or user variables.
, .
, ? :
CREATE TABLE s_time (
completed INT UNSIGNED NOT NULL DEFAULT 0
)
PARTITION BY RANGE ( completed ) (
PARTITION p0 VALUES LESS THAN ( UNIX_TIMESTAMP() )
);
. MySQL :
VALUES LESS THAN. MySQL LESS THAN (<).
UNIX_TIMESTAMP() . , . , - .
, , LESS THAN " ", :
1064 (42000): , (sub) LESS THAN
"" , UNIX_TIMESTAMP().
, , , script ALTER TABLE.
1) :
CREATE TABLE s_time (
req_id INT NOT NULL,
ser_id INT NOT NULL,
hel_id INT NOT NULL,
posted INT UNSIGNED NOT NULL,
completed INT UNSIGNED NOT NULL DEFAULT 0
) PARTITION BY RANGE (completed) (
PARTITION p0 VALUES LESS THAN (0),
PARTITION p1 VALUES LESS THAN (1)
);
2) (, PHP):
<?php
$query =
"ALTER TABLE s_time REORGANIZE PARTITION p0, p1 INTO (
PARTITION p0 VALUES LESS THAN ($today),
PARTITION p1 VALUES LESS THAN ($tomorrow)
)";
.