首页 > 教程攻略 > ai资讯 >使用大模型进行信创SQL迁移的实践总结

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

来源:互联网 时间:2026-08-21 14:08:36

在现代化的项目管理和运维工作中,利用大模型(如ChatGPT)处理复杂任务已经逐渐成为高效手段。最近一个项目中,我们尝试用大模型将MySQL导出的SQL语句迁移为达梦信创数据库格式。几轮操作下来,有一点体会格外深刻:提示词工程做得好不好,直接影响最终结果的质量。下面把这次实践的关键过程和总结分享出来,希望能给遇到类似需求的团队一些参考。

项目背景

项目里有一份从MySQL导出的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","A VATAR","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迁移的实践就是一个鲜活的例子:模型本身能力再强,也得靠精心设计的提示词来引导。希望这份经验能给更多项目和团队带来启发,也期待未来在运维、项目管理和日常工作中挖掘出更多大模型的应用场景。