Repository navigation
v1.0.0
sql-extractor
sql-extractor 是一个高性能的 SQL 解析和转换工具,它可以将 SQL 语句转换为参数化模板,并提取相关的表信息和参数值。该工具基于 TiDB 的 SQL 解析器,支持复杂的 SQL 语句分析。
功能特性
- 支持多种 SQL 操作类型:SELECT、INSERT、UPDATE、DELETE、SHOW CREATE TABLE、SHOW CREATE DATABASE、SHOW DATABASES、SHOW TABLES、SHOW COLUMNS、SHOW INDEX、SHOW STATUS、SHOW VARIABLES、SHOW PROCESSLIST、SHOW TABLE STATUS、SHOW WARNINGS、SHOW ERRORS
- SQL 语句参数化:将字面值转换为占位符(
?) - 表信息提取:捕获查询中使用的 schema 和表名
- 分库分表支持:支持分库分表的表名提取和模板化,例如
db_1.tb_23会被转换为db_?.tb_?
- 分库分表支持:支持分库分表的表名提取和模板化,例如
- 参数提取:按出现顺序收集 SQL 中的字面值
- 多语句支持:可以处理以分号分隔的多个 SQL 语句
- 线程安全:使用 sync.Pool 进行并发处理
- 支持复杂 SQL 特性:
- JOIN 操作(LEFT JOIN、RIGHT JOIN、INNER JOIN)
- 子查询
- 聚合函数
- 各种 SQL 表达式(LIKE、IN、BETWEEN 等)
Full Changelog: https://github.com/kydenul/sql-extractor/commits/v1.0.0