news 2026/6/9 14:02:35

MySQL数据导入两个问题解决

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL数据导入两个问题解决

点击标题下「蓝色微信名」可快速关注

最近做个测试数据导入的工作,碰到两个问题,还是能引申出一些知识点。

(1)导入数据出现类型转换错误

我们通过dbeaver客户端导入csv文件格式的数据,可能会碰到这个问题,

提示说'IS_DEL'是数值型,但是当前传入的数据是个字符串,之前一直很困惑,打开csv文件,看到都是数值,怎么有字符串?

其实就是因为这个csv中带了表头,第一行的'IS_DEL'是个string,数据库导入时,无法将其转成合法的数值类型,才会抛这个错。

解决方案就是将配置中的"标题位置"选择"top"(默认是"none"),导入的时候,就会自动过滤第一行,不会出现数据类型转换的错误。

(2)复制表结构提示需要主键错误

Oracle数据库中复制一张表我们通常用CTAS,即Create Table ... AS select ...,它会将相关的属性都复制过来,但MySQL中,如果用CTAS,可能会提示这个问题,

SQL 错误 [3750] [HY000]: Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row-based replication, so please consult your DBA before changing this setting.

意思就是不能创建一张没有主键的表,或者设置sql_require_primary_key参数,允许表可以没有主键。On the other hand,通过CTAS创建的表,没有复制主键,MySQL复制表,有几种操作方案,

方法1:使用CREATE TABLE ... LIKE

复制表结构,包括索引、约束等,但不复制数据CREATE TABLE 新表名 LIKE 原表名;示例,CREATE TABLE users_copy LIKE users;

方法2:使用CREATE TABLE ... SELECT配合WHERE 1=0

复制表结构,但不会复制索引和约束CREATE TABLE 新表名 AS SELECT * FROM 原表名 WHERE 1=0;示例,CREATE TABLE users_copy AS SELECT * FROM users WHERE 1=0;

方法3:完整复制表结构+数据

复制表结构+数据CREATE TABLE 新表名 AS SELECT * FROM 原表名;示例,CREATE TABLE users_copy AS SELECT * FROM users;

方法4:使用SHOW CREATE TABLE

1. 查看原表的创建语句SHOW CREATE TABLE 原表名; 2. 修改表名后执行创建语句示例输出:CREATE TABLE `users` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 3. 修改表名后创建新表CREATE TABLE users_copy ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
几种方案的对比,

如果只需要复制结构,推荐使用第一种。如果复制结构和数据,推荐第三种。如果跨数据库复制的场景,可以用第一种,

复制到另一个数据库CREATE TABLE 目标数据库.新表名 LIKE 源数据库.原表名; 示例CREATE TABLE db2.users_copy LIKE db1.users;

注意事项,

(1)使用LIKE不会复制原表的触发器。

(2)使用SELECT方式不会复制原表的索引和约束。

(3)如果只需要部分字段,可以在SELECT中指定。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,

可以到各大平台找我,

  • 微信公众号:@bisal的个人杂货铺

  • 腾讯云开发者社区:@bisal的个人杂货铺

  • 头条号:@bisal的个人杂货铺

  • CSDN:@bisal

  • ITPub:@bisal

  • 墨天轮:@bisal

  • 51CTO:@bisal

  • 小红书:@bisal

  • 抖音:@bisal

近期更新的文章:

《TVP 七周年:奇迹同行,未来可期》

《北京北汽队常规赛赛程表》

《英超第十五轮》

《致敬苏炳添!》

《"权力"和"权利"联系和区别?》

近期Vlog:

《千岛湖》

《Skyline Luge》

《新疆之行(红山体育馆 - 国际大巴扎 - 红山公园 - 天山天池)》

《新疆之行(天马浴河 - 哈因塞 - 那拉提 - 依提根塞)》

《新疆之行(六星街 - 伊昭公路 - 夏塔)》

热文鉴赏:

《揭开"仿宋"和"仿宋_GB2312"的神秘面纱》

《Linux的"aarch"是多了个"a"?》

《中国队“自己的”世界杯》

《你不知道的C罗-Siu庆祝动作》

《大阪环球影城避坑指南和功略》

《推荐一篇Oracle RAC Cache Fusion的经典论文》

《"红警"游戏开源代码带给我们的震撼》

文章分类和索引:

《公众号1900篇文章分类和索引》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 2:16:02

这家中国公司,让 GPU 利用率飙升!全球 AI 圈热议

最近,我遇到一个十分头疼的问题,有一组集群机器,配了4张GPU显卡,平时主要用来测评大模型、开发AI应用。本来应该是够用了,但是在使用GPU的时候经常是独占式的,一个任务占了整张卡,利用率却只有3…

作者头像 李华
网站建设 2026/5/30 16:28:52

基于单片机的智能蓝牙音箱设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4652310M设计简介:本设计是基于单片机的智能蓝牙音箱设计,主要实现以下功能:通过OLED显示屏显示正在播放的歌曲名字 通…

作者头像 李华
网站建设 2026/6/10 3:30:49

计算机毕设java关于梦想的贴吧系统 基于Java的“梦想交流社区”系统设计与实现 Java开发的“逐梦论坛”系统构建与应用

计算机毕设java关于梦想的贴吧系统vrlq39 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网的飞速发展,人们对于信息交流和分享的需求日益增长。传统的线下交…

作者头像 李华
网站建设 2026/6/7 12:13:22

【翻译】【SOMEIP-SD】Page52 - Page54

文章目录5.1.2.6 Endpoint Handling for Services and Events5.1.2.6.1 Service Endpoints5.1.2.6 Endpoint Handling for Services and Events [PRS_SOMEIPSD_00476] SOME/IP-SD应使用Endpoint Option或Multicast Option中的IP地址和端口号覆盖静态配置中的IP地址和端口号。 …

作者头像 李华
网站建设 2026/6/3 15:03:07

Docker Buildx镜像优化实战(高效压缩与多平台构建双突破)

第一章:Docker Buildx 的镜像压缩在现代容器化开发中,减小镜像体积是提升部署效率与降低资源消耗的关键环节。Docker Buildx 作为 Docker 官方的构建增强工具,支持多平台构建和高级构建选项,同时提供了对镜像压缩的灵活控制能力。…

作者头像 李华
网站建设 2026/6/4 5:40:00

【Docker Buildx镜像压缩终极指南】:掌握多架构镜像瘦身核心技术

第一章:Docker Buildx镜像压缩的核心价值在现代容器化开发与部署流程中,镜像体积直接影响构建速度、传输效率和运行时资源消耗。Docker Buildx 作为 Docker 的扩展构建工具,不仅支持多平台构建,还通过高级构建功能实现高效的镜像压…

作者头像 李华