想在 Cursor 里面能直接让 LLM 帮我写 SQL,但是不能让他直接访问数据库,有什么好的办法吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RangerWolf
V2EX    问与答

想在 Cursor 里面能直接让 LLM 帮我写 SQL,但是不能让他直接访问数据库,有什么好的办法吗?

  •  
  •   RangerWolf 111 天前 2287 次点击
    这是一个创建于 111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要写的 SQL 有时候挺重复的,无非是一些条件的变换(比如上次 keyword = AAA , 这次 keyword = BBB )
    但是每次也略微有点复杂,而且还需要进行一些表的关联,比如 provider_id 每次都要去 provider 表做一个关联查询(需求需要按照 provider name 进行查询)

    每次都很重复劳动,觉得效率很低

    但是又不能让他直接访问我们的生产数据库,一种想法就是把 Schema 下载到本地,搭建一个测试环境

    线上数据库包括 MySQL + Clickhouse

    求问有什么好的方案?轻微付费也可以
    15 条回复    2025-06-24 09:41:22 +08:00
    ferock
        1
    ferock  
    PRO
       111 天前 via iPhone
    测试库,mcp 服务,ddl 落本地 docs 目录
    javalaw2010
        2
    javalaw2010  
       111 天前
    测试环境是可行的,用对应的 MCP 就行。更简单的方法是将数据库结构输出到 markdown 的表格里面,让 LLM 直接读对应的 markdown 就好了。
    RangerWolf
        3
    RangerWolf  
    OP
       111 天前
    @javalaw2010 markdown 的话 如果有几百张表。。。 会不会 context 太多?

    如果搭建测试环境, 推荐哪个 MCP?
    RangerWolf
        4
    RangerWolf  
    OP
       111 天前
    @ferock ddl 落本地 docs 目录 这个有说明吗? 我只知道一个 indexing & Docs 是这个功能?
    dethan
        5
    dethan  
       111 天前 via Android
    @RangerWolf mcp 是最佳实践
    adgfr32
        6
    adgfr32  
       111 天前 via Android
    不是很懂,为什么要 mcp ,mcp 只是一个上下文协议,对于模型的能力又没有提升,而且 op 说了,不要直接访问数据库,也就是 op 只需要模型生成一个 sql ,甚至连 tools 都不需要。
    所以 op 可以自己写一个工具,拉取线上表的结构作为上下文送进去。长度大概率够,一张表就算 100 token ,100 张表 10k token ,16k 的模型都够了。
    kuse2001
        7
    kuse2001  
       111 天前 via Android
    https://github.com/FreePeak/db-mcp-server

    go 写的,用着还还可以
    dcatfly
        8
    dcatfly  
       111 天前
    可以写个 mcp ,让 ai 只能读出表结构,不能操作数据,相比直接给上下文的好处是不用管理同步表结构的变化。
    Liftman
        9
    Liftman  
       111 天前
    反正首先权限肯定只有 查。 增删改都不能给。 其次正常我们现在做的一个产品就是用一个智能体用 mcp 访问所有子公司的所有数据库,读取后立刻汇总再结构化,然后用图表渲染出来,满足客户领导的面子工程。
    zhoujinjing09
        10
    zhoujinjing09  
       111 天前
    把 schema 的 sql dump 下来给 LLM 就可以了吧
    ujfj1986
        11
    ujfj1986  
       111 天前
    @Liftman @RangerWolf @ 佬,请问你们的大写字母开头的 v 站账号是怎么注册的呀,能不能教教我呀~
    RangerWolf
        12
    RangerWolf  
    OP
       111 天前
    @kuse2001 感谢 我试试看
    youtubbbbb
        13
    youtubbbbb  
       110 天前
    可以读取 schema 和头几行
    Liftman
        14
    Liftman  
       110 天前
    @ujfj1986 注册的时候你写大写字母不就行??????????????
    RangerWolf
        15
    RangerWolf  
    OP
       109 天前
    @ujfj1986 我也没有注意 这就是我最常用的网名 而且我注册时间很久很久了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     876 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:43 PVG 05:43 LAX 14:43 JFK 17:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86