gpt4 book ai didi

sqlite - 在不存在文件名 fileName 的情况下调用 sqlite3 fileName 时,如何避免让 sqlite3 创建新的空数据库?

转载 作者:行者123 更新时间:2023-12-03 15:01:48 25 4
gpt4 key购买 nike

如果我使用

$ sqlite3 fileName
sqlite> .s
sqlite>_

并且没有名为 fileName 的文件,sqlite3 创建一个新的空数据库。有没有办法避免这种情况?理想情况下,如果找不到文件,我希望它重试几次,然后失败并显示错误消息。像这样的东西:
$ sqlite3 --failIfNoSuchFile --retry 3 fileName
sqlite> No such file, retrying ...
sqlite> No such file, retrying ...
sqlite> No such file, retrying ...
sqlite> Aborting...
Error: No file named fileName
$_

这样的事情可能吗?

我问的原因是因为我们拥有的现有数据库被这个新的空白数据库粉碎并替换,只是因为网络问题首先阻止了 sqlite3 找到该文件,但并没有阻止它创建新的空数据库(并粉碎了旧的)!至少,这是我们想出的最可能的理论来解释数据库突然空了(即使结构消失了, .s 什么也没有返回,文件大小为 0)

有任何想法吗?

顺便说一句,在实际上下文中,tcl 脚本连接到数据库并插入数据。问题出现为“找不到表”错误,我们发现数据库文件是空的。

最佳答案

我不知道让 sqlite3 执行此操作的标志。你能不能在调用 sqlite3 之前让你的 tcl 脚本检查文件?

会不会像这样工作:

if {[file exists $dbName] == 1} {
# call sqlite3 in here
return 0
} else {
error "database file not found: $dbName"
}

关于sqlite - 在不存在文件名 fileName 的情况下调用 sqlite3 fileName 时,如何避免让 sqlite3 创建新的空数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416858/

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