SQLite - 分离数据库



SQLite 的 **DETACH DATABASE** 语句用于分离并断开先前使用 ATTACH 语句附加到数据库连接的命名数据库。如果同一个数据库文件已使用多个别名附加,则 DETACH 命令只会断开给定名称的连接,其余的附加连接将继续保持。您无法分离 **main** 或 **temp** 数据库。

如果数据库是内存数据库或临时数据库,则数据库将被销毁,其内容将丢失。

语法

以下是 SQLite DETACH DATABASE 'Alias-Name' 语句的基本语法。

DETACH DATABASE 'Alias-Name';

这里,'Alias-Name' 是您在使用 ATTACH 语句附加数据库时使用的相同别名。

示例

假设您有一个数据库,您在上一章中创建了它并使用 'test' 和 'currentDB' 附加到它,我们可以使用 **.database** 命令查看。

sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db
3    currentDB        /home/sqlite/testDB.db

让我们尝试使用以下命令从 testDB.db 中分离 'currentDB'。

sqlite> DETACH DATABASE 'currentDB';

现在,如果您检查当前的附加情况,您会发现 testDB.db 仍然连接到 'test' 和 'main'。

sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db
广告