【问题标题】:mysql - not able to add foreign key constraint after changing column namemysql - 更改列名后无法添加外键约束
【发布时间】: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, CONSTRAINT city_details_ibfk_1 FOREIGN KEY (city_district_id) REFERENCES district_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


    【解决方案1】:

    得到问题 District_details 表是空的,但 city_details 表中的值很少,将值添加到 District_details 后它工作正常

    【讨论】:

      猜你喜欢
      • 2013-03-10
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多