【问题标题】:Parse SQL query before it goes to MySQL在进入 MySQL 之前解析 SQL 查询
【发布时间】:2018-07-20 15:17:26
【问题描述】:

在我的 Go 应用程序中,我希望能够在执行 SQL 查询之前对其进行分析。 我想得到: 类型(更新、插入、删除等)。这很容易,但接下来的步骤却不是。 表受到影响, 要更新的列(插入/更新时) 最重要的 - 条件、列列表和值。

有这方面的 Go 库吗?

传递一个 sql 查询并返回一些包含该查询信息的结构

【问题讨论】:

    标签: mysql go


    【解决方案1】:

    是的,你有 sqlparser 用于 golang。

    注意sqlparser是从数据库集群系统vitess拉出来的

    你可以像这样使用sql解析器,

    reader := strings.NewReader("INSERT INTO table1 VALUES (1, 'a');")
    
    tokens := sqlparser.NewTokenizer(reader)
    for {
        stmt, err := sqlparser.ParseNext(tokens)
        if err == io.EOF {
            break
        }
        // Do your logics with the statements.
    }
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 2013-03-26
      • 2012-06-14
      相关资源
      最近更新 更多