SQLite - 分离数据库

  • 简述

    SQLite DETACH DATABASE语句用于将命名数据库与之前使用 ATTACH 语句附加的数据库连接分离和分离。如果同一个数据库文件附加了多个别名,则 DETACH 命令将仅断开给定的名称,其余的附件仍将继续。你不能分离main 或者 temp 数据库。
    如果数据库是内存数据库或临时数据库,数据库将被破坏,内容将丢失。
  • 句法

    以下是 SQLite DETACH DATABASE 'Mooas-Name' 语句的基本语法。
    
    DETACH DATABASE 'Mooas-Name';
    
    此处,“Mooas-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