问题标签 [sqlite-journal-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8379 浏览

sqlite - PRAGMA journal_mode=OFF 不起作用。为什么?

我正在运行 SQLite3 版本 sqlite-3.6.12 并且我已成功将其移植到我的操作系统。我看到的问题是,当我执行命令“PRAGMA journal_mode = OFF”时,它返回“OFF”,但我仍然看到正在创建 *.db-journal 文件。至关重要的是,这些文件不是为了我的项目而创建的。当我逐步执行代码 sqlite3PagerJournalMode 正在返回 PAGER_JOURNALMODE_OFF 所以我想知道设置 journal_mode=OFF 是否仍应生成这些文件,或者是否还有其他我遗漏的东西。请帮助

我也尝试了 PRAGMA main.journal_mode = OFF 和 PRAGMA journal_mode = MEMORY。但是日志文件是这样创建的!!!!

0 投票
3 回答
7116 浏览

vb.net - System.data.sqlite - 激活 WAL 日志模式

我在我的 vb.net 程序中使用 System.data.sqlite.dll。对于我的一生,我无法弄清楚激活 WAL 模式的代码。

我是在创建数据库后立即激活此命令还是使用每个新的 SQLiteConnection。

如果是这样的话,我现在需要使用什么代码,例如:

这是应该如何使用 PRAGMA 命令?

0 投票
2 回答
32412 浏览

c - SQLite DB 中的 -shm 和 -wal 文件

在运行 wal_checkpoint(FULL) 后,我正在使用 cp 命令备份 SQLite DB。该数据库正在 WAL 模式下使用,因此我的文件夹中还有其他文件,例如 -shm 和 -wal。当我运行 wal_checkpoint(FULL) 时,WAL 文件中的更改将提交到数据库。我想知道 -wal 和 -shm 文件在运行检查点后是否会被删除。如果不是,那么它们包含什么?

我知道我的备份过程不好,因为我没有使用 SQLite 备份 API。这是我的代码中的一个错误。

任何人都可以建议运行检查点后 -shm 和 -wal 文件包含哪些内容。

提供的任何链接都会有所帮助。

谢谢

0 投票
1 回答
1092 浏览

c - 可以在事务期间检查 WAL 文件吗?

我们正在 SQLite 数据库上执行相当大的事务,这导致 WAL 文件变得非常大。(大型事务有时高达 1GB。)有没有办法在事务中间检查 WAL 文件?当我尝试调用sqlite3_wal_checkpoint()或执行 WAL 检查点 PRAGMA 语句时,两者都返回 SQLITE_BUSY。

0 投票
0 回答
1435 浏览

android - 如何更改数据库日志模式

当我在应用程序上创建数据库时,出现此错误:

无法将“/data/data/example/databases/exemple”的数据库日志模式从“wal”更改为“PERSIST”,因为数据库已锁定。这通常意味着有其他打开的数据库连接会阻止数据库启用或禁用预写日志记录模式。在不更改日志模式的情况下继续。

我不知道解决方案,你能帮我吗?

0 投票
1 回答
1536 浏览

java - 如何在 Windows 中将 SQLite DB journal_mode 更改为 WAL?

我正在编写一个 Java Swing 应用程序,该应用程序与本地 SQLite DB 一起工作,它与在线 MySQL 数据库每分钟同步,它是一个线程。因此,即使同步过程正在进行,用户也应该能够更改数据。

所以我知道我可以通过更改为日志模式来做到这一点,WAL而且我已经在 Linux 中做到了。它工作得很好。但在 Windows 中它不起作用。当我尝试使用语句转换日志模式时,PRAGMA journal_mode=WAL;它总是返回deletenotWAL

我做了一些研究,我在 SQLite web 上找到了这个。

journal_mode pragma 返回一个字符串,它是新的日志模式。成功时,编译指示将返回字符串“wal”。如果无法完成到 WAL 的转换(例如,如果 VFS 不支持必要的共享内存原语),那么日志模式将保持不变,并且从原语返回的字符串将是先前的日志模式(例如“删除”)。

我该如何解决这个问题?例如,我可以更改 DB VFS 吗?

我正在使用 Sqliteman 来管理我的数据库。

0 投票
1 回答
2753 浏览

c# - 在 SQLite 中为 Entity Framework Core 代码优先设置日志模式

我在实体框架上使用 DBContext,使用本教程中的过程来创建数据库。

并使用以下方式保存:

我将如何将日记模式设置为 WAL 之类的东西?

0 投票
1 回答
1225 浏览

php - PHP SQLite PRAGMA journal_mode = wal 和只读用户

我读到 WAL 模式允许用户在写会话期间阅读。
因此我应该能够同时有 3 个会话读取数据和一个写入数据,这听起来对我来说是件好事,所以我想我应该定义会话类型,以便系统知道这个会话是读取器还是使用连接标志的编写器。
http://php.net/manual/en/sqlite3.open.php#refsect1-sqlite3.open-parameters
它在这里指出,如果会话没有完全关闭,则-shm-wal文件不会被删除
https://www.sqlite .org/tempfiles.html#write_ahead_log_wal_files
在读取会话之后,临时文件不会被删除,这意味着尽管调用了 close 函数并返回会话并没有完全关闭true,那么为什么使用SQLITE3_OPEN_READONLY标志时文件没有被删除?我什至应该使用旗帜吗?

0 投票
1 回答
4080 浏览

c# - 如何在 C# 中更改 Sqlite 数据库的“journal_mode”

按照 Sqlite 的PRAGMA的说明,我发现PRAGMA schema.journal_mode;更改了 journal_mode 并给出了我选择的选项off来提高插入功能的性能。我写:

它打开一个名为的数据库MyDatabase.sqlite和命令

写在最后,我相信会关闭 sqlite 数据库的日志记录,但我不知道该怎么做,如果这是正确的方法,那么我做错了什么,因为我看不到任何变化添加 PRAGMA 命令后的性能。

我从Tigran's Blog Post on Sqlite中提到的链接下载了 Sqlite 库

0 投票
1 回答
510 浏览

android - 从什么时候开始 sqlite 的持久日志模式成为 Android 中的默认日志模式?

从什么时候开始 sqlite 的持久日志模式成为 Android 中的默认日志模式?

我知道在 Android 版本 4.1.1 (API 16) 中日志模式已经改变。但这并不准确。因为发行说明不包含此信息。我不知道我是否可以在发行说明中找到。如果您知道有人确切知道 SQLite 日志模式在 Android 中何时更改,请告诉我。