Я хотел бы добавить раздел (к 2020 году, 2021, 2022 и т. Д. c.) В таблицу "cns_dv c":
+-----------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| id_dvc | bigint(20) | NO | | NULL | |
| dvc | varchar(50) | NO | MUL | NULL | |
| zone | varchar(10) | YES | | NULL | |
| date_str | varchar(50) | YES | | NULL | |
| date_prs | varchar(50) | YES | | NULL | |
| external_id | int(11) | YES | | NULL | |
| no_week | int(6) | YES | | NULL | |
| day | varchar(30) | NO | | NULL | |
| pg_avg | decimal(6,3) | YES | | NULL | |
| i_spd_avg | decimal(15,3) | YES | | NULL | |
| o_spd_avg | decimal(15,3) | YES | | NULL | |
| year | int(4) | NO | MUL | NULL | |
| month | tinyint(6) | YES | MUL | NULL | |
| month_year | date | YES | | NULL | |
| date_cns | datetime | YES | | NULL | |
+-----------------------+---------------+------+-----+---------+-------+
Найти индексы для предыдущая таблица:
+--------------+------------+------------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------+------------+------------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| cns_dvc | 0 | dvc | 1 | dvc | A | 33847 | NULL | NULL | | BTREE | | |
| cns_dvc | 0 | dvc | 2 | date_str | A | 4264740 | NULL | NULL | YES | BTREE | | |
| cns_dvc | 0 | dvc | 3 | pg_avg | A | 4264740 | NULL | NULL | YES | BTREE | | |
| cns_dvc | 0 | uidx_dvc_date_cns | 1 | dvc | A | 7084 | NULL | NULL | | BTREE | | |
| cns_dvc | 0 | uidx_dvc_date_cns | 2 | date_cns | A | 4264740 | NULL | NULL | YES | BTREE | | |
| cns_dvc | 1 | month | 1 | month | A | 2 | NULL | NULL | YES | BTREE | | |
| cns_dvc | 1 | year | 1 | year | A | 2 | NULL | NULL | | BTREE | | |
+--------------+------------+------------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Когда я пытаюсь добавить некоторые разделы, я получаю следующую ошибку:
ALTER TABLE cns_dvc PARTITION BY RANGE(YEAR(date_cns))( PARTITION p2020 VALUES LESS THAN(2021), PARTITION p2021 VALUES LESS THAN MAXVALUE );
ERROR 1503 (HY000): A UNIQUE INDEX must include all columns in the table's partitioning function
Должен ли я добавлять уникальный индекс только для столбца date_cns? Если это так, этот столбец не может быть уникальным. Возможно, тип раздела неправильный?
Редактировать: Показать CREATE TABLE cns_dvc;
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| cns_dvc | CREATE TABLE `cns_dvc` (
`id_dvc` bigint(20) NOT NULL,
`dvc` varchar(50) NOT NULL,
`zone` varchar(10) DEFAULT NULL,
`date_str` varchar(50) DEFAULT NULL,
`date_prs` varchar(50) DEFAULT NULL,
`external_id` int(11) DEFAULT NULL,
`no_week` int(6) DEFAULT NULL,
`day` varchar(30) NOT NULL,
`pg_avg` decimal(6,3) DEFAULT NULL,
`i_spd_avg` decimal(15,3) DEFAULT NULL,
`o_spd_avg` decimal(15,3) DEFAULT NULL,
`year` decimal(15,3) DEFAULT NULL,
`month` decimal(15,3) DEFAULT NULL,
`month_year` decimal(15,3) DEFAULT NULL,
`date_cns` datetime DEFAULT NULL,
UNIQUE KEY `dvc` (`dvc`,`date_str`,`pg_avg`) USING BTREE,
UNIQUE KEY `uidx_dvc_date_cns` (`dvc`,`date_cns`),
KEY `month` (`month`),
KEY `year` (`year`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)