SQL文件无法导入MySQL workbench-“;未能添加外键约束。缺少列';用户ID'&引用;
我一直在尝试导入一个.SQL文件,我知道数据库可以正常工作。有人能解释一下为什么在从自包含文件导入时出现以下错误吗? 第55行出现错误3734(HY000):未能添加外键约束。引用表“user”中约束“user\u app\u FK”缺少列“userid”SQL文件无法导入MySQL workbench-“;未能添加外键约束。缺少列';用户ID'&引用;,mysql,mysql-workbench,Mysql,Mysql Workbench,我一直在尝试导入一个.SQL文件,我知道数据库可以正常工作。有人能解释一下为什么在从自包含文件导入时出现以下错误吗? 第55行出现错误3734(HY000):未能添加外键约束。引用表“user”中约束“user\u app\u FK”缺少列“userid” -- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64) -- -- Host: 127.0.0.1 Database: avi_it -- --------------------
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: avi_it
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `application`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `application` ( --line 55
`applicationID` int(11) NOT NULL AUTO_INCREMENT,
`userID` int(11) DEFAULT NULL,
`jobID` int(11) DEFAULT NULL,
`applicationDes` text,
PRIMARY KEY (`applicationID`),
KEY `user_app_FK_idx` (`userID`),
KEY `job_app_FK_idx` (`jobID`),
CONSTRAINT `job_app_FK` FOREIGN KEY (`jobID`) REFERENCES `job` (`jobid`),
CONSTRAINT `user_app_FK` FOREIGN KEY (`userID`) REFERENCES `user` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`personID` int(11) DEFAULT NULL,
PRIMARY KEY (`userID`),
KEY `person_user_FK_idx` (`personID`),
CONSTRAINT `person_user_FK` FOREIGN KEY (`personID`) REFERENCES `person_detail` (`personid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
应该只是订单问题。需要首先创建用户表转储必须包含外键检查禁用语句-在转储顶部的某个位置。如果您收到显示的错误消息,则此语句可能不存在或由于某种原因未执行。我在上面的问题中添加了检查,取消注释是否有效?
/*!40014设置@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0*/代码>保存当前设置,然后禁用FK检查。也许工作台因为某种原因切断了这一排?尝试取消对此行和转储末尾的补充行的注释。