在SQLite中是否有任何内置函数可以启用查询日志。
我熟悉 Trace API,但我想知道是否有任何预定义函数。
最佳答案
没有像 MySQL 那样简单的方法来做到这一点,但有一些选择:
一:
一些包装器库内置了类似这样的东西。但是要找到包装器库,您可能首先需要确定目标语言。 Perl 数据库接口(interface)? Python? C++?
两个:
我不会(以任何方式)推荐以下“生产级”解决方案,但如果您主要是试验和/或调试,那么您可以尝试检查回滚日志在每笔交易结束之前。 See here about the rollback journal: http://www.sqlite.org/tempfiles.html如何检测“每个事务的结束”取决于您的代码和/或调试器中的断点。
我必须再次强调:我刚才说的完全是胡扯,我说了也觉得脏。
三:
您可以在(非常积极和亲切的)sqlite mailing list 上提问,但他们可能只是重新强调 sqlite3_trace。
...其他随机的东西:
在某种程度上(几乎?)相关的说明中,当您启动“./sqlite3”命令提示符 session 时,您可以键入:
.explain
它为在提示符下执行的每个查询启用有趣且有指导意义的详细输出。
我刚找到的更多信息:
One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG.这是另一种方式(除了跟踪 API 之外)设置回调并定期从 sqlite 库接收状态信息。我认为它主要用于错误日志消息。
关于sql - 在 SQLite 3 中启用查询日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910157/