sql >> データベース >  >> RDS >> Mysql

プライマリには、テーブルのパーティション分割場所エラーのすべての列が含まれている必要がありますか?

    PKの一部であるfldconfirmdateを使用してデータをパーティション化していますが、UNIQUEKEYfld_idの一部ではありません。

    これは、から抽出されます。 MySQLマニュアル

    つまり、fldconfirmdateを一意キー'fld_id´の一部にすることで、問題が解決します。

    CREATE TABLE `tbl_emp_confirmation` (
      `fld_id` int(11) NOT NULL AUTO_INCREMENT,
      `fldemp_id` varchar(100) DEFAULT NULL,
      `fldempname` varchar(100) DEFAULT NULL,
      `fldjoindate` varchar(100) DEFAULT NULL,
      `fldconfirmdate` Date NOT NULL,
      `fldresigndate` varchar(100) DEFAULT NULL,
      `fldstatus` varchar(50) DEFAULT NULL,
      `fldcon_status` varchar(100) DEFAULT NULL,
      UNIQUE KEY `fld_id` (`fld_id`, `fldconfirmdate`),
      KEY `in_empconfirmation` (`fldemp_id`,`fldempname`,`fldjoindate`,`fldconfirmdate`)
      ) PARTITION BY RANGE ( Month(fldconfirmdate))
      (PARTITION p_JAN VALUES LESS THAN (TO_DAYS('2011-01-01')),
     PARTITION p_FEB VALUES LESS THAN (TO_DAYS('2011-02-01')),
     PARTITION p_MAR VALUES LESS THAN (TO_DAYS('2011-03-01')),
     PARTITION p_APR VALUES LESS THAN (TO_DAYS('2011-04-01')),
     PARTITION p_MAY VALUES LESS THAN (TO_DAYS('2011-05-01')),
     PARTITION p_MAX VALUES LESS THAN MAXVALUE );
    



    1. リモートMySQLデータベース接続のセットアップ

    2. SQL Developerスクリプトの出力は、sys_refcursorの幅を切り捨てます

    3. データベース設計:異なる属性を持つオブジェクト

    4. Fedora12でMySQLリレーショナルデータベースを使用する