在使用 ATTACH DATABASE 附加多个数据库文件后,SQLite 允许通过 DETACH DATABASE 命令将其安全地从当前连接中移除。此操作不会删除数据库文件,而是断开与其的连接。


📚 目录

  1. 什么是 DETACH DATABASE
  2. DETACH DATABASE 基本语法
  3. 使用示例
  4. 常见问题与注意事项
  5. 参考资料与链接

1. 什么是 DETACH DATABASE

当你在当前连接中使用 ATTACH DATABASE 连接了其他数据库后,如果你不再需要操作这些数据库,可以使用 DETACH DATABASE 将其断开。

作用:

  • 释放资源
  • 清理连接状态
  • 保持主数据库操作独立性

2. DETACH DATABASE 基本语法

DETACH DATABASE 数据库别名;

注意:该别名应是你在 ATTACH 时指定的名称(例如 old_data)。


3. 使用示例

✅ 附加数据库:

ATTACH DATABASE 'archive.db' AS old_data;

✅ 查询附加库内容:

SELECT * FROM old_data.customers;

✅ 分离附加数据库:

DETACH DATABASE old_data;

完成后,你将无法再访问 old_data 中的任何表,除非重新 ATTACH


4. 常见问题与注意事项

  • 默认数据库 main 无法被分离,只能分离附加的数据库。
  • 如果存在活动事务或锁,DETACH 可能失败。
  • 使用前建议 COMMITROLLBACK 当前事务,确保资源干净释放。
  • 一般在脚本结束或连接关闭前清理附加数据库是一种良好习惯。

5. 参考资料与链接


通过 DETACH DATABASE,你可以灵活地清理不再需要的数据库连接,优化 SQLite 的资源使用。欢迎访问 www.52kanjuqing.com 获取更多数据库实用技巧和开发案例。