大家好,我有一張流水表,表里的日期都是char(8)位的,我想用此欄位(trandate)進行按月磁區,如下:
CREATE TABLE `accounting` (
id INT NOT NULL AUTO_INCREMENT,
`trandate` char(8) NOT NULL DEFAULT '',
`uid` varchar(20) NOT NULL DEFAULT '',
`terminal` varchar(20) DEFAULT NULL,
`client_ip` varchar(16) NOT NULL DEFAULT '',
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
PARTITION BY RANGE (to_days(trandate)) (
PARTITION p201409 VALUES LESS THAN (to_days('2014-10-01')),
PARTITION p201410 VALUES LESS THAN (to_days('2014-11-01')),
PARTITION p201411 VALUES LESS THAN (to_days('2014-12-01'));
但此陳述句一直建表失敗,不知道為啥,請各位大俠相助,謝謝!
uj5u.com熱心網友回復:
我這里沒有MYSQL的環境,所以不能執行您的腳本。可以把所有的to_days函式都去掉試試看。
uj5u.com熱心網友回復:
兩個地方錯誤第一句
id INT NOT NULL AUTO_INCREMENT ,
主鍵定義要加上primary key
正確寫法
id INT NOT NULL AUTO_INCREMENT primary key,
第二句
`client_ip` varchar(16) NOT NULL DEFAULT '',
這一句多了個","號
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/43424.html
標籤:MySQL
