gpt4 book ai didi

python - 使用 Python 和 SQLite 验证 SQL 查询语法

转载 作者:行者123 更新时间:2023-12-03 14:35:50 25 4
gpt4 key购买 nike

我正在使用 Python 从 .sql 执行一系列 SQLite 查询。文件。似乎应该有一种很好的方法来检查查询的语法,以验证它们是否都正确编写并可以执行。这一点尤其重要,因为这些查询将同时用于 MySQL 和 SQLite,因此任何 MySQL 特定的语法都应该被捕获和标记。

当然,我可以只执行查询并查找异常。但似乎应该有比这更好的方法。

最佳答案

使用 sql 解析模块,您应该能够尝试解析每个语句,而无需执行和回滚。从理论上讲,这将更有效率。

编辑:最初我尝试使用 sqlparse模块没有意识到它是故意不验证的。 这不起作用。

import sqlparse

# open the SQL file and read the contents
f_contents = open("example.sql").read()

# Use regexes to split the contents into individual SQL statements.
# This is unrelated to the issue
stmnt_list = split_statements(f_contents)

good_stmnts = [] # statements that executed correctly
for stmnt in stmnt_list:
try:
sqlparse.parse(stmnt)
good_stmnts.append(stmnt)
except sqlparse.exceptions.SQLParseError:
print("Bad statement. Ignoring.\n'%s'" % stmnt)

我也做了一些不相关(和可选)的更改:
  • good_stmnts在 try block 内附加 & rm continue
  • 只抓到 SQLParseError
  • 关于python - 使用 Python 和 SQLite 验证 SQL 查询语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745041/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com