gpt4 book ai didi

sqlite - 如何在 Julia 中以只读方式打开 SQLite 数据库?

转载 作者:行者123 更新时间:2023-12-03 20:48:19 27 4
gpt4 key购买 nike

我想从 Julia 脚本(Mac OS X)读取我的 Safari 历史数据库。
我有一个有效的命令行脚本:

sqlite3 -readonly ~/Library/Safari/History.db 'SELECT v.title, i.url FROM history_items i, history_visits v WHERE i.url LIKE "%en.wikipedia.org%" AND i.id=v.history_item AND v.title LIKE "%- Wikipedia%" GROUP BY v.title ORDER BY v.visit_time' 
...但是在 Julia(在 Juno/Atom 中)尝试它会给我一个权限错误
db = SQLite.DB("/Users/grimxn/Library/Safari/History.db")
sql = """
SELECT v.title, i.url, v.visit_time
FROM history_items i, history_visits v
WHERE i.url LIKE "%en.wikipedia.org%"
AND i.id=v.history_item
AND v.title LIKE "%- Wikipedia%"
GROUP BY v.title
ORDER BY v.visit_time
"""
result = DBInterface.execute(db, sql) |> DataFrame
(rows, cols) = size(result)
println("Result has $(rows) rows")
println("Earliest: $(result[1,1])")
println("Latest: $(result[rows,1])")

ERROR: LoadError: SQLite.SQLiteException("unable to open database file")


现在,当我将数据库复制到我的主目录时,并交换
db = SQLite.DB("/Users/grimxn/Library/Safari/History.db")
db = SQLite.DB("/Users/grimxn/History.db")
一切正常,所以我猜是 Julia/Juno 进程只有读取权限,但正在访问数据库读/写。
如何在 Julia 中以只读方式附加到数据库?

最佳答案

理论上,使用 URI 连接字符串:file:foo.db?mode=ro .
这是记录在案 in the SQLite manual .
实际上,SQLite.jl 包的当前版本似乎不支持 URI,也不支持可以传递给 sqlite3_open_v2() 的标志。 .

关于sqlite - 如何在 Julia 中以只读方式打开 SQLite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64411855/

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