当我在innodb表上运行alter table
进行分区时,我在Mysql 5.7上遇到了这个错误:
Foreign keys are not yet supported in conjunction with partitioning
知道我已经drop foreign key
了这个表,drop foreign key
这个表的id是。
现在是我的表架构:
| record | CREATE TABLE `record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`altitude` smallint(6) DEFAULT NULL,
`counter` double DEFAULT NULL,
`datetime` datetime NOT NULL,
`details` longtext,
`deviation` smallint(6) DEFAULT NULL,
`engine` tinyint(1) DEFAULT NULL,
`event` smallint(6) DEFAULT NULL,
`fuel_level` double DEFAULT NULL,
`gsm_level` int(11) DEFAULT NULL,
`latitude` double NOT NULL,
`longitude` double NOT NULL,
`satellite` smallint(6) DEFAULT NULL,
`speed` smallint(6) DEFAULT NULL,
`time` time NOT NULL,
`treated` tinyint(1) NOT NULL DEFAULT '0',
`id_driver` bigint(20) DEFAULT NULL,
`id_vehicle_device` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_ai9y9d52lx1xvtaiv3w0x60a5` (`id_driver`),
KEY `FK_ilwlg0mt87bxyemx4tov1elni` (`id_vehicle_device`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
答案 0 :(得分:2)
来自Restrictions and Limitations on Partitioning:
分区的InnoDB表不支持外键。使用InnoDB存储引擎的分区表不支持外键。更具体地说,这意味着以下两个语句都是正确的:
使用用户定义分区的InnoDB表的定义可能不包含外键引用;没有InnoDB表,其定义包含外键引用,可以进行分区。
没有InnoDB表定义可能包含对用户分区表的外键引用;没有带有用户定义分区的InnoDB表可能包含外键引用的列。
答案 1 :(得分:-1)
这意味着没有用户分区的 InnoDB 表可能包含外键引用或外键引用的列