使用大模型进行SQL迁移的实践总结

在现代化的项目管理和运维工作中,利用大模型(如ChatGPT)处理复杂任务已成为一种高效手段。近期我们在一个项目中尝试利用大模型将MySQL导出的SQL语句迁移为达梦信创数据库格式,通过几轮操作,我们深刻体会到提示词工程的重要性,并总结了使用大模型的最佳实践。

项目背景

在项目中,我们需要将一份从MySQL导出的SQL文件迁移为达梦信创数据库格式,具体要求是将SQL语句中的表名和字段名全部加上双引号。人工处理不仅耗时且容易出错,因此我们决定尝试利用大模型来完成这项任务。

操作过程

第一轮操作:

我们将脱敏后的SQL文件上传至ChatGPT,并下指令为“帮我把文件中的SQL语句表名和列表加上双引号”。操作如下图所示:

图片

初步结果显示大部分语句正确处理,但仍有部分未按要求执行。如下图所示:

图片

此时,我们意识到提示词和示例的重要性。

第二轮操作:

针对第一轮结果,我们明确指出存在问题,并提供了一个手工处理后的正确示例。

图片

尽管结果有所改善,但部分过长的SQL语句仍未完全正确处理。如下图所示:

图片

此时,我们进一步调整了提示词,并增强了示例的覆盖面。

第三轮操作:

在前两轮的基础上,我们增加了示例数量,并设计了更详细的提示词。具体提示词包括明确的需求、正确的SQL语句示例以及操作后的预期结果。

图片

完整的”提示词工程“如下:

帮我把文件中的sql语句表名和列名加上双引号。如下为表名和列名加上双引号的正确示例,请将如上文件进行修改后,并提供下载:INSERT INTO "QRTZ_CRON_TRIGGERS" ("SCHED_NAME","TRIGGER_NAME","TRIGGER_GROUP","CRON_EXPRESSION","TIME_ZONE_ID") VALUES ('UCenterScheduler','TASK_CLASS_NAME102','DEFAULT','0 0 0 ? * 1','Asia/Hong_Kong'); INSERT INTO "SYS_DICT_DATA" ("DICT_SORT","DICT_LABEL","DICT_VALUE","DICT_TYPE","CSS_CLASS","LIST_CLASS","IS_DEFAULT","STATUS","CREATE_BY","CREATE_TIME","UPDATE_BY","UPDATE_TIME","REMARK") VALUES (2,'服务中心','2','sys_link_type','','default','N','0','EoiAdmin','2023-06-09 14:22:42','EoiAdmin','2023-06-14 16:50:46',''), (1,'运管系统','1','sys_link_type',NULL,'default','N','0','EoiAdmin','2023-06-09 14:23:10','',NULL,NULL), (3,'轮播类型','3','sys_link_type',NULL,'default','N','0','EoiAdmin','2023-06-09 14:23:38','',NULL,NULL), (4,'报表类型','4','sys_link_type',NULL,'default','N','0','EoiAdmin','2023-06-26 15:00:13','EoiAdmin','2023-06-26 15:00:22',NULL); INSERT INTO "SYS_USER" ("DEPT_ID","USER_NAME","NICK_NAME","USER_TYPE","EMAIL","PHONENUMBER","SEX","AVATAR","PASSWORD","STATUS","DEL_FLAG","LOGIN_IP","LOGIN_DATE","CREATE_BY","CREATE_TIME","UPDATE_BY","UPDATE_TIME","REMARK","SSO_ID","SOURCE_BY","OTP_SK","SECRET_BASE32","EMPLOYEEID","EN_NAME","DEPARTMENT","LAST_PASSWORD_CHANGE_DATE") VALUES (103,'EoiAdmin','开发','00','','15888888888','0','','$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2','0','0','192.168.21.225','2024-07-09 11:56:23','admin','2023-02-14 11:03:47','','2024-07-08 23:56:23','管理员',20200321,'0','otpauth://totp/EoiAdmin@?secret=ISG5WRNRFRDXJAOQAEIJ33YDOBV2EUDOON766YF2TSODJ27XNIRQ&period=30&digits=6','ISG5WRNRFRDXJAOQAEIJ33YDOBV2EUDOON766YF2TSODJ27XNIRQ',NULL,NULL,NULL,'2024-07-08 23:56:23'), (103,'admin','管理员','00','admin@eoitek.com','15888880000','0','','$2a$10$erscMiICVJEZ7NjUA7kbZOXA2URJn3iSt2WdmvusqDVd7HzASIZWq','0','0','192.168.21.225','2024-07-10 11:40:09','admin','2023-02-14 11:03:47','admin','2024-07-09 23:40:08','管理员',20200321,'0','','6XJXUMWJACPXKLO3SU44HKDGEUDTQIG7PGJYHMLJO3W42GPIDSMA',NULL,NULL,NULL,'2024-07-09 23:40:08');

最终,大模型成功按要求处理了所有SQL语句,达到了预期效果。

经验总结

通过这次实践,我们总结出以下几点关键经验:

1. 明确需求:提示词必须清晰明确,涵盖具体需求和预期结果,避免歧义。

2. 提供示例: 通过提供多个正确示例,可以帮助大模型学习和理解需求,从而输出正确结果。

3. 反馈和调整: 针对初步结果进行反馈,调整提示词和示例,逐步优化输出效果。

4. 提示词工程:设计提示词时要注意逻辑性和层次性,使大模型能够逐步理解任务并正确执行。

结语

在实际应用中,利用大模型处理复杂任务不仅提升了效率,还保证了结果的准确性。然而,要充分发挥大模型的潜力,提示词工程和示例设计至关重要。未来,我将继续探索大模型在运维、项目管理和日常工作中的更多应用场景,帮助大家提高工作和学习效率。

通过此次SQL迁移的成功实践,我更加坚定了利用大模型提升工作效率和质量的信心。希望这次经验总结能为更多项目和团队提供借鉴。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

旷野之间4 - 100 个 Kubernetes 面试问题及答案

100 个 Kubernetes 面试问题及答案 Kubernetes 简介 什么是 Kubernetes? Kubernetes 是一个开源容器编排平台,可自动部署、扩展和管理容器化应用程序。 什么是容器? 容器是一个轻量级、独立的、可执行软件包,其中包含运行应用…

QT--槽函数和控件篇一

一、自定义信号和槽函数 QT 将信号和槽集成在QObject类中;发送者和接受者都必须继承这个类。Q_OBJECT宏是实现信号和槽机制、属性系统和元对象系统的关键。Q_OBJECT宏必须出现在每个使用信号和槽的类中,因为它为这些类提供了必要的元数据和功能。信号在…

mindspore打卡23天之基于MobileNetv2的垃圾分类函数式自动微分

基于MobileNetv2的垃圾分类 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写(Python语言)&a…

从0开始的STM32HAL库学习5

旋转编码计数器 修改中断代码 void EXTI0_IRQHandler(void) {/* USER CODE BEGIN EXTI0_IRQn 0 */if(__HAL_GPIO_EXTI_GET_FLAG(PB0_Pin)){if(HAL_GPIO_ReadPin(PB1_GPIO_Port, PB1_Pin)GPIO_PIN_RESET){count--;}/* USER CODE END EXTI0_IRQn 0 */HAL_GPIO_EXTI_IRQHandler…

php file_get_contents https 请求 伪造user_agent

在PHP中,使用file_get_contents()函数来发起HTTPS请求时,可以通过设置HTTP请求头来伪造User-Agent。file_get_contents()函数本身不直接支持设置请求头,可以通过上下文(context)参数来实现这一点。 // 目标URL $url …

Java技术栈总结:容器集合篇

一、List 1、ArrayList (1)底层数据结构 底层数据结构为数组。数组是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 Q:为什么数组索引下标从0开始? A:从0开始,对应寻址公式:a[i]…

Vuetify3 + Nuxt3:跳转详情

在Nuxt 3中&#xff0c;使用v-data-table组件时&#xff0c;我们想要在点击某个行或者某个单元格时进行页面跳转。可以通过监听组件的点击事件&#xff0c;并使用useRouter来实现页面跳转。 <template><v-data-table:headers"headers":items"items&qu…

dolphinScheduler + hive + datax报错记录

1、参数错误 报错信息 [INFO] 2024-04-11 06:43:18.386 - [taskAppIdTASK-29-3301-84461]:[498] - after replace sql , preparing : insertoverwrite table mis_month partition (dt) select nvl(sl.slid , ) as id,--水量 IDnvl(sl.hh …

MongoDB教程(二):mongoDB引用shell

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、MongoD…

了解AsyncRotationController

概述 基于android 15.0, 以从强制横屏App上滑退回桌面流程来分析 frameworks/base/services/core/java/com/android/server/wm/AsyncRotationController.javaAsyncRotationController 是一种控制器&#xff0c;用于处理设备显示屏旋转时非活动窗口的异步更新。这种控制器通过…

设计模式——适配器设计模式

设计模式——适配器设计模式 适配器设计模式1.1 基本介绍1.2 工作原理1.3 类适配器模式1.3.1 基本介绍1.3.2 示例1.3.3 代码实现1.3.4 注意事项 1.4 对象适配器模式1.4.1 基本介绍1.4.2 示例1.4.3 代码实现1.4.4 注意事项 1.5 接口适配器模式1.5.1 基本介绍1.5.2 示例1.5.3 代码…

如何处理Java中数据结构(如HashMap)导致的性能瓶颈

在Java开发过程中&#xff0c;HashMap 是一种常用的数据结构&#xff0c;它提供了高效的键值对存储和快速的查找、插入和删除操作。然而&#xff0c;在某些情况下&#xff0c;HashMap 可能会导致性能瓶颈。本文将探讨这些性能瓶颈的成因&#xff0c;并提供一些优化策略。 一、…

Webkit简介以及工作流程

Webkit简介 WebKit是一个开源的浏览器引擎&#xff0c;最初由苹果公司基于KHTML&#xff08;K Desktop Environment的HTML渲染引擎&#xff09;开发&#xff0c;并广泛应用于Safari浏览器。随着时间的推移&#xff0c;WebKit也被其他多款浏览器和应用所采用&#xff0c;成为We…

pudb: Python的图形化调试器

文章目录 pudb原理基础使用安装pudb启动pudb界面介绍常用操作 高级使用条件断点表达式求值自定义布局搜索和过滤插件和扩展 结论 pudb原理 pudb是一个基于文本的图形化Python调试器&#xff0c;它结合了pdb的强大调试功能与图形用户界面的易用性。pudb通过提供一个可视化的界面…

【操作系统】阻塞队列以及生产者消费者模型

目录 阻塞队列一. 概念二. 标准库中的阻塞队列三. 生产者消费者模型四. 阻塞队列实现 总结 阻塞队列 一. 概念 阻塞队列是⼀种特殊的队列.也遵守"先进先出"的原则. 阻塞队列能是⼀种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续⼊队列就会阻塞,直到…

Splashtop 在医疗与制药领域的业务增长近五倍

2024年7月10日 加利福尼亚州库比蒂诺 Splashtop 是安全远程访问和 IT 支持解决方案领域的领先企业&#xff0c;该公司今天宣布&#xff0c;在医疗与制药领域业务同比增长492%&#xff0c;取得了里程碑式的成就。快速发展的数字实验室环境和持续的网络安全威胁需要实施无缝、安…

Unity之VS脚本自动添加头部注释Package包开发

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity之VS脚本自动添加头部注释Package包开发 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&…

模板语法指令语法——02

//指令语法&#xff1a; 1.什么是指定&#xff0c;有什么作用&#xff1f; 指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式的作用语DOM 2.vue框架中的所有指令的名字都以v-开始的 3.插值是写在标签当中用的&#xff0c;指令…

WSGI 服务器教程:`execute` 方法解析

Python WSGI 服务器教程&#xff1a;execute 方法解析 在本文中&#xff0c;我们将详细解析一个用于 WSGI 服务器的 execute 方法。这个方法负责执行 WSGI 应用程序&#xff0c;处理其响应数据&#xff0c;并确保在应用程序执行过程中处理所有必要的清理工作。我们将逐行解释该…

uniapp启动图延时效果,启动图的配置

今天阐述uniapp开发中给启动图做延迟效果&#xff0c;不然启动图太快了&#xff0c;一闪就过去了&#xff1b; 一&#xff1a;修改配置文件&#xff1a;manifest.json "app-plus" : {"splashscreen" : {"alwaysShowBeforeRender" : false,"…