ATTACH DATABASE trong SQLite

Giả sử có một tình huống khi bạn có nhiều cơ sở dữ liệu có sẵn và bạn muốn sử dụng bất cứ cơ sở dữ liệu nào tại một thời điểm. Lệnh ATTACH DATABASE trong SQLite được sử dụng để lựa chọn một Database cụ thể, và sau lệnh này, tất cả các lệnh SQLite khác sẽ được thực thi dưới Attached Database đó.

Cú pháp cơ bản của lệnh ATTACH DATABASE trong SQLite là như sau:

ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

Lệnh trên sẽ tạo một Database trong trường hợp nó chưa được tạo, nếu không thì, nó sẽ chỉ gắn tên file chứa cơ sở dữ liệu với 'Alias-Name'.

Ví dụ

Nếu bạn muốn attach một cơ sở dữ liệu đang tồn tại testDB.db, thì lệnh ATTACH DATABASE sẽ như sau:

sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';

Sử dụng lệnh .database trong SQLite để hiển thị Attached Database đó.

sqlite> .database
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db

Các tên main và TEMP được dành riêng tương ứng cho một Primary Database và một Database để giữ các bảng tạm và các đối tượng dữ liệu tạm thời khác. Cả hai tên này tồn tại cho mỗi kết nối Database và không nên được sử dụng để attach, nếu không thì bạn sẽ nhận một cảnh báo như sau:

sqlite>  ATTACH DATABASE 'testDB.db' as 'TEMP';
Error: database TEMP is already in use
sqlite>  ATTACH DATABASE 'testDB.db' as 'main';
Error: database TEMP is already in use

Bình luận