mysql导入sql文件没有表(mysql导入sql文件失败)

mysql导入sql文件没有表(mysql导入sql文件失败)首先这是聂老师的 sql 文件 然后我们现在有很多种导入方法 该工具下载路径 Navicat 1 1 打开 localhost 3306 选中右击 新建数据库 1 2 指定数据库名和字符集 可根据 sql 文件的字符集类型自行选择 1 3 选中数据库下的表运行 SQL 文件 1 4 选中路径导入 文件路径可以和上图不一样 自己设定就好了 2 1NO 1 新建一个数据库 名字任取

大家好,我是讯享网,很高兴认识大家。



首先这是聂老师的sql文件

 

讯享网

然后我们现在有很多种导入方法

该工具下载路径:Navicat

1.1打开localhost_3306,选中右击“新建数据库”

1.2指定数据库名和字符集(可根据sql文件的字符集类型自行选择)

1.3选中数据库下的表运行SQL文件

1.4选中路径导入

文件路径可以和上图不一样,自己设定就好了

2.1NO.1

  1. 新建一个数据库,名字任取,这里建议取和你sql文件相同的名称,然后点击指示图标(或者File栏里面的Open SQL Script…)

  1. 选中路径后导入SQL文件
  2. 添加指定库名的命令.并点击运行

PS:不用点保存,导入后直接×掉即可,保存会修改sql文件本身;

在左侧栏点击刷新查看结果

2.2NO.2

  1. 点击导入(或者Server栏里面的Data Import)
  2. 选择导入文件的路径
  3. Start Import
  4. 刷新查看结果
  1. 点击开始菜单输入cmd(或者按住win+R)回车,打开dos界面
  1. cd进入到MySQL安装目录的bin文件
  1. 输入"mysql -u root -p",然后输入数据库密码
  2. create database teaching; 新建一个数据库
  3. 选中数据库 use teaching;
  4. 选中导入的路径"source D:/teaching.sql;"
  5. 查看表show tables;

引言: MySQL中经常会需要创建父子表之间的约束,这个约束是需要建立在主外键基础之上的,这里解决了一个在创建主外键约束过程中碰到的一个问题。

1. 问题的提出

创建两个表:

product: 商品表

sealer: 供货商表

相应的SQL如下:

讯享网 
 

接下来我们需要关联product.sid 至 sealer.id,进行父子表的主外键关联。

2. 碰到错误

在创建外键之时,使用的SQL和碰到错误信息如下:

讯享网alter table `product' add CONSTRAINT `sid_ref` FOREIGN KEY (`sid`) REFERENCES `sealer` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION

碰到的错误信息如下:

无法正确的插入外键约束。

3. 问题分析


讯享网

主外键更多的是某表的主键与子表的某个列进行关联,要求是具备相同的数据类型和属性,问题会不会出现在这里?

要求: 具备相同的数据类型和约束

发现: unsigned,数字的字符长度不一致。

4. 解决的办法

修改product.sid中的数据类型,添加unsigned和字段的长度,将其设置为相同即可

5. 总结

之所以出现1215的问题,是由于主外键之间的数据类型不一致造成的,以后类似问题,皆可按此处理。

大家在导入的时候会发现,出现了很多莫名其妙的报错,然后导致很多表没有成功导进去,我们在每一个表的sql语句上找共同点,会发现,都会有字符集的解释作为结尾,但是这里的字符集,大部分人的5.6版本是不支持的,所以要么卸载所有的现MySQL版本,要么就修改聂老师的teaching.sql文件,这两个方法都非常复杂.

第一种还好,虽然卸载程序比较繁琐,但是只要跟着网上的教程一步一步来,最后把注册表删删干净就没多大问题.

第二种是真的让我破防了.

首先我在MySQL Workbench里面打开了teaching.sql文件,试着运行过去,好不容易发现并修改了字符集的错误,然后又莫名其妙地出现了无法创建外键连接的错误.

我寻找了网上的教程,如上所说,导致外键创建失败的原因主要有以下两点:

  1. 外键字段不能为该表的主键
  2. 外键字段参考字段必须为参考表的主键.

如果出现”cannot add foreign key constraint”的情况,建议先检查一下,主表是否有主键以及从表关联字段是否为从表主键,然后,核对从表字段与主表关联字段的数据类型是否相同,其中是否有不符合的数据(不好弄就先把数据备份,然后删完了试一下,如果可以,说明确实是存在不符合的数据问题)。

为此我还去问了老师.他的回答也是如此.

但是我都试过了,还是会报那个错误,然后我突发奇想,换一个平台,也许是控制环境的问题.于是我换成了IDEA的平台(不得不说,IDEA用着是真舒服,不愧是一天几刀的开发IDE)

如图,我把字符集的问题修改了一下之后,直接就成功了,目前来看,原因应该是IDEA拥有自动版本适配的功能,然而MySQL workbench的官方图形化操作平台开发得相对比较呆板,所以5.7版本的MySQL不能适配8版本的sql语法等.(不清楚是不是这个原因,如有误请大佬评论区指正原因)

我们将teaching所有的表中的数据可视化.OK,非常完整,成功!

小讯
上一篇 2025-06-01 16:13
下一篇 2025-04-29 17:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/137209.html