我打开了一个连接到用户在golang程序中选择的sqlite数据库的连接.如果他们提供了一个不存在的文件的路径,那么我想抛出一个错误,而不是创建该文件.
我正在使用mattn/gp-sqlite3驱动程序.据我所知,文档没有提到这个功能.
FailIfMissing选项,但在不同的格式.如果数据库丢失,这与Make SQLite连接失败相同?(删除/移动)但是对于golang而不是C#.golang驱动程序似乎使用不同的格式来描述与C#驱动程序的连接,因此我不知道那里的答案是否转换为golang.
go-sqlite3库目前无法实现这一点.查看源代码,您可以看到SQLITE_OPEN_CREATE始终传递给open函数:
rv := C._sqlite3_open_v2(name, &db,
    C.SQLITE_OPEN_FULLMUTEX|
        C.SQLITE_OPEN_READWRITE|
        C.SQLITE_OPEN_CREATE,
    nil)
我建议你在包上打开一张票来添加这样的功能.
同时,您可以在创建数据库之前添加以下代码(请记住存在竞争条件,这就是为什么您仍应在库本身中请求此功能):
_, err := os.Stat("db.sqlite3")
if os.IsNotExist(err) {
    panic("database doesn't exist")
}
// TODO: create db
| 归档时间: | 
 | 
| 查看次数: | 563 次 | 
| 最近记录: |