我无法将我的 SQL 表从 Adminer 导入 MySQL Workbench 而不会出现错误:第 9 行的错误 1215 (HY000):无法添加外键约束

Posted

技术标签:

【中文标题】我无法将我的 SQL 表从 Adminer 导入 MySQL Workbench 而不会出现错误:第 9 行的错误 1215 (HY000):无法添加外键约束【英文标题】:I can't import my SQL tables from Adminer to MySQL Workbench without getting error: ERROR 1215 (HY000) at line 9: Cannot add foreign key constraint 【发布时间】:2022-01-16 16:26:21 【问题描述】:

我正在尝试将我的 NodeJS 应用程序部署到 Heroku,并使用以下参数导出我的 MariaDB SQL 表:

Format: SQL
Tables: DROP+CREATE |Triggers

但是,当我导入它们时,我得到了一个模糊的错误:第 9 行的错误 1215 (HY000):无法添加外键约束。这是我的 SQL 导出的一部分:

-- Adminer 4.6.3 mysql dump

SET NAMES utf8;
SET time_zone = '+00:00';

SET NAMES utf8mb4;

DROP TABLE IF EXISTS `Govt_answers`;
CREATE TABLE `Govt_answers` (
  `Answer_id` int(3) unsigned NOT NULL AUTO_INCREMENT,
  `Question_id` int(2) unsigned NOT NULL,
  `Correct` bit(1) NOT NULL,
  `Answer_prompt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
  PRIMARY KEY (`Answer_id`),
  KEY `Question_id` (`Question_id`),
  CONSTRAINT `Govt_answers_ibfk_1` FOREIGN KEY (`Question_id`) REFERENCES `Govt_questions` (`Question_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


DROP TABLE IF EXISTS `Govt_choice_response`;
CREATE TABLE `Govt_choice_response` (
  `Quiz_id` int(2) unsigned NOT NULL,
  `Question_id` int(2) unsigned NOT NULL,
  `Answer_id` int(3) unsigned NOT NULL,
  `Correct` bit(1) DEFAULT NULL,
  `Time_start` datetime DEFAULT NULL,
  `Time_stop` datetime DEFAULT NULL,
  `Student_id` int(4) unsigned NOT NULL,
  KEY `Quiz_id` (`Quiz_id`),
  KEY `Question_id` (`Question_id`),
  KEY `Answer_id` (`Answer_id`),
  KEY `Student_id` (`Student_id`),
  CONSTRAINT `Govt_choice_response_ibfk_1` FOREIGN KEY (`Answer_id`) REFERENCES `Govt_answers` (`Answer_id`),
  CONSTRAINT `Govt_choice_response_ibfk_2` FOREIGN KEY (`Question_id`) REFERENCES `Govt_questions` (`Question_id`),
  CONSTRAINT `Govt_choice_response_ibfk_4` FOREIGN KEY (`Quiz_id`) REFERENCES `Govt_quizes` (`Quiz_id`),
  CONSTRAINT `Govt_choice_response_ibfk_5` FOREIGN KEY (`Question_id`) REFERENCES `Govt_questions` (`Question_id`),
  CONSTRAINT `Govt_choice_response_ibfk_6` FOREIGN KEY (`Answer_id`) REFERENCES `Govt_answers` (`Answer_id`),
  CONSTRAINT `Govt_choice_response_ibfk_7` FOREIGN KEY (`Student_id`) REFERENCES `Govt_profiles` (`Student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
....etc

我在我的 Raspberry Pi 上运行的外部服务器上尝试了 SHOW ENGINE INNODB STATUS,但它没有提供有关外键问题的任何见解。 任何想法是什么问题?

【问题讨论】:

【参考方案1】:

我通过禁用外键检查然后再启用来解决这个问题。 这个post has more information。

【讨论】:

以上是关于我无法将我的 SQL 表从 Adminer 导入 MySQL Workbench 而不会出现错误:第 9 行的错误 1215 (HY000):无法添加外键约束的主要内容,如果未能解决你的问题,请参考以下文章

将表从一个数据库复制到另一个

Sqoop - 错误工具.ImportTool:导入失败:尝试从 SQL Server 导入时无法转换 SQL 类型 2005

如何使用 Java 将表从 MySQL 导入 Hive?

访问链接表从 SQL 服务器截断我的十进制值

SQOOP 导入和评估

为每行 SQL 创建表