gpt4 book ai didi

bash - 从命令行在 sqlite 中使用保存点

转载 作者:行者123 更新时间:2023-11-28 20:09:04 25 4
gpt4 key购买 nike

我正在使用 bash 脚本(特别是 bats )来测试我编写的一些代码。

因为我想避免干扰测试,所以我使用设置和拆卸功能(由 bats 提供),如下所示:

setup() {
sqlite3 test.db "SAVEPOINT pre_test"
}

teardown() {
sqlite3 test.db "ROLLBACK TO SAVEPOINT pre_test"
}

不幸的是,回滚时,我得到:

Error: no such savepoint: pre_test

但是,如果我在 SQLite 中启动交互式 session ,我可以按预期使用保存点。我猜这意味着在命令行程序退出后所有的保存点都被遗忘了。

有什么办法可以解决这个问题吗?

最佳答案

鉴于 documentation refers to savepoints as similar to transactions我的印象是保存点不会持续超过单个 sqlite session 。

文档没有特别说明这一点,但是 exhaustive explanation of how transactions被处理意味着在整个过程中,这应该全部包含在一个 session 中。

鉴于可以轻松复制非事件数据库cp precious.db pre_test.db,这似乎是影响设置的明显方式。拆解只是 rm pretest.db

关于bash - 从命令行在 sqlite 中使用保存点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501004/

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