gpt4 book ai didi

mySQL:导入数据库时​​的外键约束

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:13 26 4
gpt4 key购买 nike

我正在将 mySQL 数据库从一台服务器导出到另一台服务器。我的导出文件包含所有表定义、数据、结构等。所有表都使用 InnoDB 引擎和 utf8 字符集。我在导入时关闭了“启用外键检查”——我的导出文件也有一行“SET FOREIGN_KEY_CHECKS=0;”。

但是,当我导入数据时,出现错误“#1215 - 无法添加外键约束”

这是输入文件中的表定义:

CREATE TABLE IF NOT EXISTS UserTable (
Index_i int(13) NOT NULL,
UserUUID_vc varchar(36) DEFAULT NULL,
AccountID_i int(13) DEFAULT NULL,
FirstName_vc varchar(30) DEFAULT NULL,
LastName_vc varchar(40) DEFAULT NULL,
Password_vc varchar(255) DEFAULT NULL,
Country_vc varchar(2) DEFAULT NULL,
DateRegistered_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
DateAccountTypeChanged_dt timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
DateAccountStatusChanged_dt timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
DateAcceptedTandC_dt timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8;

它在读取任何将约束(例如 FK's)应用于表的语句之前遇到了这个问题。实际上,当它触发错误消息时,它不知道这些列中的任何一个是否是外键。

有什么想法吗?

最佳答案

如果您使用的是终端,请使用您的凭据通过以下命令登录 mysql。

mysql -u[your_username] -p[your_password]

使用以下命令将您的 mysql 外键约束检查设置为 0。

SET FOREIGN_KEY_CHECKS = 0;

使用 source 命令导入您的数据库,如下所示。

SOURCE /path/to/your/sql/file.sql

然后使用以下命令将您的 mysql 外键约束检查设置回 1。

SET FOREIGN_KEY_CHECKS = 1;

哇哇哇哇。奇迹般有效。 :)

P.S :- 在 ubuntu 14.04、16.04、18.04 上测试

关于mySQL:导入数据库时​​的外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com