Lệnh DETACH DTABASE trong SQLite được sử dụng để detach và phân tách một cơ sở dữ liệu từ một kết nối database mà đã được attach trước đó với lệnh ATTACH. Nếu cùng một Database file đã được attach với nhiều alias, thì lệnh DETACH sẽ chỉ phân tách một cơ sở dữ liệu có tên đã cung cấp, và giữ nguyên phần còn lại. Bạn không thể detach hai cơ sở dữ liệu là main hoặc temp.
Nếu cơ sở dữ liệu là tạm thời, thì nó sẽ bị hủy và nội dung sẽ bị thất lạc.
Cú pháp cơ bản của lệnh DETACH DATABASE 'Alias-Name' trong SQLite là như sau:
DETACH DATABASE 'Alias-Name';
Ở đây, 'Alias-Name' chính là alias mà bạn đã sử dụng trong khi attach cơ sở dữ liệu bởi sử dụng lệnh ATTACH.
Ví dụ
Giả sử bạn có một Database,, mà bạn đã tạo trong chương trước và attach với test và currentDB như chúng ta quan sát được khi sử dụng lệnh .database sau:
sqlite>.databases
seq name file
--- --------------- ----------------------
0 main /home/sqlite/testDB.db
2 test /home/sqlite/testDB.db
3 currentDB /home/sqlite/testDB.db
Bây giờ, detach cơ sở dữ liệu currentDB từ testDB.db như sau:
sqlite> DETACH DATABASE 'currentDB';
Sau đó bạn có thể kiểm tra các attach hiện tại, bạn sẽ thấy rằng testDB.db vấn được gắn kết với test và main.
sqlite>.databases
seq name file
--- --------------- ----------------------
0 main /home/sqlite/testDB.db
2 test /home/sqlite/testDB.db