无法使用alter table添加分区

Tu *_*ran 6 mysql partitioning foreign-keys alter-table

我的表格结构如下:

CREATE TABLE `child_table` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `value` int,
    `ref_id` int,
    PRIMARY KEY (`id`),
    KEY `ref_id` (`ref_id`),
    CONSTRAINT `FK4E9BF08E940F8C98` FOREIGN KEY (`ref_id`) REFERENCES `parent_table` (`id`) ON DELETE CASCADE
)
Run Code Online (Sandbox Code Playgroud)

运行语句以添加分区时,它会失败并显示错误:

ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
SQL Statement:
ALTER TABLE `learning`.`child_table`  PARTITION BY HASH(ref_id) PARTITIONS 10
Run Code Online (Sandbox Code Playgroud)

所以我用parent_table删除外部约束,然后再次运行.它仍然失败并显示相同的错误.

我做错了什么吗?

Edu*_*aio 28

我知道这是一个古老的问题,但是对于那些来自这里寻找这个问题的人来说,因为它是Google的第一个结果:

MySQL不支持分区表上的外键.

手册

分区的InnoDB表不支持外键. 使用InnoDB存储引擎的分区表不支持外键.更具体地说,这意味着以下两个陈述是正确的:

  1. 使用用户定义的分区的InnoDB表的定义可能不包含外键引用; 没有InnoDB表,其定义包含外键引用可以被分区.

  2. 没有InnoDB表定义可能包含对用户分区表的外键引用; 没有带有用户定义分区的InnoDB表可能包含外键引用的列.