SQLite - 分离数据库


SQLite DETACH DATABASE语句用于将命名数据库与先前使用 ATTACH 语句附加的数据库连接分离和解除关联。如果同一个数据库文件附加了多个别名,则 DETACH 命令将仅断开给定名称,而附件的其余部分仍将继续。您无法分离数据库或临时数据库。

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

句法

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

让我们尝试使用以下命令将“currentDB”与 testDB.db 分离。

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