SQLite - 分离数据库

SQLite DETACH DATABASE 语句用于将命名数据库与先前使用 ATTACH 语句附加的数据库连接分离和分离。如果同一个数据库文件已附加多个别名,则 DETACH 命令将仅断开给定名称,其余附件仍将继续。 您不能分离 maintemp 数据库。

如果数据库是内存数据库或临时数据库,则数据库将被破坏,内容将丢失。


语法

以下是 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