簡體   English   中英

外鍵約束在“放置表”期間失敗

[英]Foreign key constraint fails during `drop table`

我有一個奇怪的問題,由於外鍵約束失敗,我無法刪除表。 情況如下。

我正在嘗試從數據庫中dropdepartments ,其結構如下:

show create table `departments`
CREATE TABLE `departments` (
     `dept_id` int(11) NOT NULL AUTO_INCREMENT,
     `dept_name` varchar(50) NOT NULL,
     PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

現在,數據庫中唯一具有Department_id的其他表是employee表:

show create table employee
CREATE TABLE `employee` (
     `emp_id` varchar(20) NOT NULL,
     `role` varchar(10) DEFAULT NULL,
     `password` varchar(500) DEFAULT NULL,
     `division_id` int(20) DEFAULT NULL,
     `email_bb` varchar(100) DEFAULT NULL,
     `is_active` tinyint(1) NOT NULL,
     `date_joining` date DEFAULT NULL,
     `date_confirmation` date DEFAULT NULL,
     `date_appraisal` date DEFAULT NULL,
     `date_leaving` date DEFAULT NULL,
     `first_name` varchar(100) DEFAULT NULL,
     `middle_name` varchar(100) DEFAULT NULL,
     `last_name` varchar(100) DEFAULT NULL,
     `sex` varchar(1) DEFAULT NULL,
     `dob` date DEFAULT NULL,
     `email_other` varchar(100) DEFAULT NULL,
     `contact` varchar(100) DEFAULT NULL,
     `present_addr` varchar(1000) DEFAULT NULL,
     `perma_addr` varchar(1000) DEFAULT NULL,
     PRIMARY KEY (`emp_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

如您所見,這些表都沒有通過外鍵關聯。 那么為什么在嘗試drop department表時出現此錯誤:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails

有沒有更好的方法(並且希望更簡單)來查看定義的外鍵? 可能出什么問題了?

show create table不顯示傳入的FK約束(例如FK是在子表中指定的,而不是父表中指定的)

因此,您可能有另一個對該表具有FK約束的表。 我通常轉儲數據庫的架構,其中顯示了所有FK約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM