gpt4 book ai didi

sqlite - 如何检查 SQLite3 语法?

转载 作者:行者123 更新时间:2023-12-03 15:54:24 33 4
gpt4 key购买 nike

有没有办法在不运行 SQLite3 脚本的情况下检查它的语法?

基本上,我正在寻找 SQLite3 等效于 ruby -c script.rb , perl -c script.pl , php --syntax-check script.php , 等等。

我想过使用 explain ,但我想检查的大多数脚本都保留以供引用(并且不一定有关联的数据库)。使用 explain也会使其难以与 Syntastic 之类的东西一起使用. (也就是说,我只想检查语法,而不是语义。)

更新:

我糊涂了。假设我想对此进行语法检查:

select * from foo;

我可以做这样的事情:
echo 'explain select * from foo;' | sqlite3

但后来我得到:
SQL error near line 1: no such table: foo

我希望看到的只是“语法正常”(或类似的东西)。那可能吗?

最佳答案

到目前为止,对我来说效果很好的语法检查器是 Ruby gem sqlint

它检查 ANSI SQL:它不是特定于 sqlite方言。

它于 2015 年问世,距提出问题 5 年

它需要 Ruby 和 C 编译器(构建 pg_query native 扩展。)

下面是一个输出示例:
$ sqlint ex7a.sql
ex7a.sql:81:10:ERROR syntax error at or near "*"

在真正的 Unix 传统中,如果语法正确,sqlint 不会产生任何输出。正如提问者所问,它不检查表是否存在。

关于sqlite - 如何检查 SQLite3 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923832/

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