【发布时间】:2016-02-29 20:00:17
【问题描述】:
我正在更改具有外键约束的列的列名,我已经这样做了
ALTER TABLE `city_details` DROP FOREIGN KEY `tb_city_details_ibfk_1`;
ALTER TABLE `city_details` CHANGE `city_state_id` `city_district_id` int(8) NOT NULL AFTER `city_name`;
现在在添加约束时出现错误
1452 - 无法添加或更新子行:外键约束失败 (
testdb.#sql-39a8_23, CONSTRAINTcity_details_ibfk_1FOREIGN KEY (city_district_id) REFERENCESdistrict_details(district_id) ON DELETE CASCADE更新级联)
我已使用此查询添加约束
ALTER TABLE `city_details` ADD CONSTRAINT `city_details_ibfk_1` FOREIGN KEY (`city_district_id`) REFERENCES `district_details`(`district_id`) ON UPDATE CASCADE ON DELETE CASCADE;
SHOW CREATE TABLE city_details
CREATE TABLE `city_details` (
`city_id` int(8) NOT NULL AUTO_INCREMENT,
`city_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`city_district_id` int(8) NOT NULL,
PRIMARY KEY (`city_id`),
KEY `city_state_id` (`city_district_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
【问题讨论】:
标签: mysql