You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从MySQL X DevAPI的SQL CRUD函数获取原始SQL查询语句?

查看MySQL X DevAPI生成的原始SQL语句

有几种实用的方法可以查看insert()、select()等CRUD方法最终生成的原始SQL:

  • 开启客户端调试日志
    在创建会话时添加日志配置,将日志级别设为debug,客户端会输出包括生成SQL在内的调试信息:

    mysqlx.getSession({
      user: 'user',
      password: 'password',
      host: 'localhost',
      port: 33060,
      logger: {
        level: 'debug'
      }
    })
    

    运行代码后,控制台会打印出执行过程中生成的完整SQL语句。

  • 调用语句对象的inspect()方法
    在执行语句前,先对构建好的语句对象调用inspect(),它会返回包含原始SQL的结构化信息:

    // 查看INSERT语句的SQL
    const insertStmt = myTable
      .insert(['name', 'birthday', 'age'])
      .values(['Laurie', '2000-5-27', 19]);
    console.log(insertStmt.inspect().sql); // 直接输出生成的INSERT SQL
    
    // 查看SELECT语句的SQL
    const selectStmt = myTable
        .select(['_id', 'name', 'birthday'])
        .where('name like :name && age < :age')
        .bind('name', 'L%')
        .bind('age', 30);
    console.log(selectStmt.inspect().sql); // 直接输出生成的SELECT SQL
    
  • 开启MySQL服务器查询日志
    如果需要在服务器端验证执行的SQL,可以临时开启通用查询日志:

    -- 开启通用查询日志
    SET GLOBAL general_log = 'ON';
    -- 指定日志文件路径(可根据实际情况修改)
    SET GLOBAL general_log_file = '/var/log/mysql/general.log';
    

    执行完你的CRUD操作后,记得关闭日志以避免不必要的资源消耗:

    SET GLOBAL general_log = 'OFF';
    

    直接查看指定的日志文件就能找到执行的原始SQL。

内容的提问来源于stack exchange,提问作者Alok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:02:16