タイムスタンプの月に基づいて分割する必要がある従業員テーブルがあります。いくつかのタイプを試しましたが、機能しません。
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated TIMESTAMP NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)
PARTITION BY RANGE ( date_format(separated,'%m') ) (
PARTITION p0 VALUES LESS THAN (01),
PARTITION p1 VALUES LESS THAN (02),
PARTITION p2 VALUES LESS THAN (03),
----
PARTITION p4 VALUES LESS THAN (04)
);
このテーブルを作成しているときに、MONTH(seperated) を使用している場合、このパーティション関数が許可されていないことが示されています。DATE タイプでは機能しますが、seperated に対して無効なデフォルト値を返します。