1

以下の形式でテーブルを作成する必要があります。しかし、パーティション分割領域でエラーを返していますError Code: 1659. Field 'fldassigndate' is of a not allowed type for this type of partitioning。このエラーを解決してパーティショニングを行う方法は?

CREATE TABLE tblattendancesetup (
  fldattendanceid int(11) NOT NULL AUTO_INCREMENT,
  flddept varchar(100) DEFAULT NULL,
  fldemployee varchar(100) DEFAULT NULL,
  fldintime varchar(20) DEFAULT NULL,
  fldouttime varchar(20) DEFAULT NULL,
  fldlateafter varchar(20) DEFAULT NULL,
  fldearlybefore varchar(20) DEFAULT NULL,
  fldweekoff varchar(20) DEFAULT NULL,
  fldshiftname varchar(20) DEFAULT NULL,
  fldassigndate varchar(20) DEFAULT NULL,
  fldfromdate varchar(20) DEFAULT NULL,
  fldtodate varchar(20) DEFAULT NULL,
  fldrefid varchar(20) DEFAULT NULL,
  UNIQUE KEY fldattendanceid (fldattendanceid),
  KEY in_attendancesetup (fldemployee,fldintime,fldouttime,fldlateafter,fldearlybefore,fldfromdate,fldtodate,fldattendanceid),
  KEY i_emp_tmp (fldemployee),
  KEY i_emp_attendance (fldemployee)
)
 PARTITION BY RANGE (fldassigndate)
(PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2012-05-01')),
 PARTITION p_May VALUES LESS THAN (TO_DAYS('2012-06-01')),
 PARTITION p_Nov VALUES LESS THAN MAXVALUE );
4

2 に答える 2

3

MySQL マニュアル (セクション 18) から:

分割キーのデータ型。パーティション化キーは、整数列または整数に解決される式のいずれかである必要があります。

日付も varchar もパーティショニングに使用できません

于 2012-08-24T05:28:17.903 に答える