V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RangerWolf
V2EX  ›  问与答

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

  •  
  •   RangerWolf · 23 天前 · 1982 次点击
    要写的 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
       23 天前 via iPhone
    测试库,mcp 服务,ddl 落本地 docs 目录
    javalaw2010
        2
    javalaw2010  
       23 天前
    测试环境是可行的,用对应的 MCP 就行。更简单的方法是将数据库结构输出到 markdown 的表格里面,让 LLM 直接读对应的 markdown 就好了。
    RangerWolf
        3
    RangerWolf  
    OP
       23 天前
    @javalaw2010 markdown 的话 如果有几百张表。。。 会不会 context 太多?

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

    go 写的,用着还还可以
    dcatfly
        8
    dcatfly  
       23 天前
    可以写个 mcp ,让 ai 只能读出表结构,不能操作数据,相比直接给上下文的好处是不用管理同步表结构的变化。
    Liftman
        9
    Liftman  
       23 天前
    反正首先权限肯定只有 查。 增删改都不能给。 其次正常我们现在做的一个产品就是用一个智能体用 mcp 访问所有子公司的所有数据库,读取后立刻汇总再结构化,然后用图表渲染出来,满足客户领导的面子工程。
    zhoujinjing09
        10
    zhoujinjing09  
       23 天前
    把 schema 的 sql dump 下来给 LLM 就可以了吧
    ujfj1986
        11
    ujfj1986  
       23 天前
    @Liftman @RangerWolf @ 佬,请问你们的大写字母开头的 v 站账号是怎么注册的呀,能不能教教我呀~
    RangerWolf
        12
    RangerWolf  
    OP
       23 天前
    @kuse2001 感谢 我试试看
    youtubbbbb
        13
    youtubbbbb  
       22 天前
    可以读取 schema 和头几行
    Liftman
        14
    Liftman  
       22 天前
    @ujfj1986 注册的时候你写大写字母不就行??????????????
    RangerWolf
        15
    RangerWolf  
    OP
       21 天前
    @ujfj1986 我也没有注意 这就是我最常用的网名 而且我注册时间很久很久了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   954 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:40 · PVG 03:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.