私はmysql 5.6で遊んでいます。私は特に可能性に興味があります: DATETIME または TIMESTAMP 値には、最大マイクロ秒 (6 桁) の精度で秒の小数部を含めることができます。
私が望むのは、そのようなタイムスタンプを使用してテーブルを分割することです。
例:
CREATE TABLE `VALUE_BIS` (
`TSTAMP` timestamp(3) NOT NULL,
`ATTRIBUTE_ID` int(11) NOT NULL,
`VAL` int(11) unsigned NOT NULL,
PRIMARY KEY (`ATTRIBUTE_ID`,`TSTAMP`)
) PARTITION BY RANGE (UNIX_TIMESTAMP(TSTAMP))
(PARTITION p_s18 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-18 00:00:00')),
PARTITION p_s19 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-19 00:00:00')),
PARTITION p_Max VALUES LESS THAN (UNIX_TIMESTAMP('2020-09-26 00:00:00' )));
==>エラー 1491 (HY000): PARTITION 関数が間違った型を返します
*整数ではないunixtimestamp_seconds.microsecondsを返すので、それは正常だと思います*
次のようにミリ秒を追加すると
PARTITION p_s18 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-18 00:00:00.000')
==> エラー 1697 (HY000): パーティション 'p_s18' の VALUES 値の型は INT でなければなりません
OK 前と同じ話
tstamp 列の定義を変更し、ミリ秒を使用しない場合
`TSTAMP` timestamp
==>問題なく動作しますが、ミリ秒を保存しません。それは私が望むものではありません。
何か案が?