AI编程实战:告别手动写SQL,AI分分钟帮你高效导入数据
这里补充说明一下,之所以推荐在数据量不大的场景下使用本文这种 AI 导入数据的方式,主要是因为大模型的上下文长度有限,数据过多时容易出现“幻觉”,导致生成的SQL语句不准确。之前没有平台时,通过企业微信的在线表格进行记录,现在,系统初步建设完成,我们需要将表格数据导入到平台的“项目环境”模块中。并且,我实际写提示词的时候,忘记增加日期格式了,但是由于字典数据 sql 中有日期格式,AI 直接学会了
前言
在项目实施过程中,数据导入几乎是每个技术人都绕不开的问题。
过去,我们只能靠手写脚本、手写SQL,一列列分析,一行行导入,既枯燥又低效。现在,随着 AI 能力的发展,数据导入这件事将变得前所未有的高效和轻松。
今天就和大家聊聊,如何让 AI 帮助我们完成枯燥、低效的数据导入工作。
而我们,应该多去享受生活嘛~
背景及任务
背景
依然是我们内部的协同办公平台,整个项目后端采用 Spring Boot + 原生Mybatis 实现,数据库采用的 MySQL。
平台中有一个模块是“项目环境”,主要管理我们所有项目的各类部署环境,比如开发环境、测试环境、预发布环境、生产环境等,效果如下:
任务
之前没有平台时,通过企业微信的在线表格进行记录,现在,系统初步建设完成,我们需要将表格数据导入到平台的“项目环境”模块中。
文中数据已混淆处理。
操作过程
开发环境:Cursor + Claude 3.7,Chat/Ask 模式。
数据库:Mysql 5.7.x。
本次分享的 AI 辅助数据导入思路,是直接根据表格数据生成sql语句,然后执行sql语句插入数据库。比较适合数据量不太大,且数据格式较为简单的场景。
数据量不能太大的原因,结语中再行讨论。
其实不使用表格,直接使用文本也可以,但是容易遇到结构化不清晰的文本导致 AI 理解偏差,进而导致 SQL 语句生成错误,因此建议直接整理成表格进行导入。
整理数据
1、将需要导入的数据整理到Excel中。
2、将Excel另存为 CSV 格式,方便 AI 读取。
不使用 Excel 格式是因为 AI 默认无法解析 Excel 文件。
如果是很简单的表格,比如,几行数据,列也比较清晰的话,直接截图粘贴到上下文中也是可以的。
但针对一些特殊字符或者行数较多,还是建议使用 CSV 格式,减少识别错误。
编写提示词
该场景的提示词主要包括四部分:
- 明确任务:根据表结构从CSV文件中读取数据,并生成sql语句。
- 表结构:直接使用建表 SQL。
- 数据:使用 CSV 文件。
- 说明:包括数据映射规则、数据格式要求等。
下面分部分进行分析。
明确任务
这一点应该比较简单,主要点明“参考表结构”、“从CSV文件中读取数据”、“生成sql语句”这几个关键地方。
表结构
表结构直接使用建表的sql语句说明即可。
脚本导入通常依赖列名或下标进行严格匹配,方式较为固定;而AI则能结合上下文智能理解和映射字段,大大提升了数据导入的灵活性和容错能力,这也是AI导入数据的一大优势。
数据
直接使用CSV文件即可。
需要说明的是,Cursor 中无法直接粘贴 CSV 文件,需要先将 CSV 文件复制到项目中,再通过 @ 进行引用。
说明
1、数据中有些字段需要进行转换,比如,环境类型是个字典、项目是个关联字段,需要转换成对应的 value 或者 id。
为了展示效果,我分别采用两种方式进行转换说明。
- 环境类型:直接引入字典表的sql语句,只需点名需要转换成对应的 value,AI 即可自行转换。
- 关联项目:关联字段则直接通过在提示词中写明对应关系进行转换。
2、数据中有些字段需要进行格式化,比如,时间格式需要转换成 yyyy-MM-dd HH:mm 格式。
生成SQL
上下文:
- 项目环境的建表sql
- CSV格式的导入数据
- 字典数据sql:用于映射环境类型使用
提示词:
参考project_environment表结构,从CSV文件中读取数据,并生成insert sql语句。
说明:
- 环境类型是个字典,字典类型为sccop_env_type,sql中直接使用字典对应的value。
- 项目是个关联字段,项目环境中存储项目id,项目id与名称对应关系如下:内部AI创新项目-1,花慧-2,深创协同办公平台-3,易拍即识小程序-4,细胞溯源管理系统-5,深创官网-6,通悟官网-7。
- create_by_id=1,dept_id=1,create_by=admin,create_time使用now()
结果:
显示生成 sql,然后展示中间的转换关系,方便大家进行核对。
说实话,除了主要的结果,还把相关文档整理了,这不比普通初级程序员完成任务的效果好很多?
并且,我实际写提示词的时候,忘记增加日期格式了,但是由于字典数据 sql 中有日期格式,AI 直接学会了。
执行SQL
在各类数据库管理工具中执行生成的sql语句,完成数据导入。
结语
这里补充说明一下,之所以推荐在数据量不大的场景下使用本文这种 AI 导入数据的方式,主要是因为大模型的上下文长度有限,数据过多时容易出现“幻觉”,导致生成的SQL语句不准确。
在实际测试过程中,40条以上的记录,本文的方法就已经有几率出现编造数据的情况了。
如果确实有大批量或更复杂的数据导入需求,建议采用分批处理或者采用Agent模式。
如果你在实际操作中遇到其他棘手的数据导入场景,欢迎留言交流,后续我也会再分享一些其他导入方式。
更多推荐
所有评论(0)