在我的 Go 应用程序中,我希望能够在执行 SQL 查询之前对其进行分析。 我想得到: 类型(更新、插入、删除等)。这很容易,但接下来的步骤却不容易。 受影响的表, 要更新的列(插入/更新时) 最重要的 - 条件、列列表和值。
有这方面的库吗?
传递 SQL 查询并返回一些包含有关此查询的信息的结构
最佳答案
是的,你有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.
}
关于mysql - 在将 SQL 查询发送到 MySQL 之前对其进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51435233/