SQLite - ATTACH Database


Consider a case when you have multiple databases available and you want to use any one of them at a time. SQLite ATTACH DATABASE statement is used to select a particular database, and after this command, all SQLite statements will be executed under the attached database.


Following is the basic syntax of SQLite ATTACH DATABASE statement.

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

The above command will also create a database in case the database is already not created, otherwise it will just attach database file name with logical database 'Alias-Name'.


If you want to attach an existing database testDB.db, then ATTACH DATABASE statement would be as follows −

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

Use SQLite .database command to display attached database.

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

The database names main and temp are reserved for the primary database and database to hold temporary tables and other temporary data objects. Both of these database names exist for every database connection and should not be used for attachment, otherwise you will get the following warning message.

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

Useful Video Courses


Android SQLite Programming for Beginners

25 Lectures 4.5 hours

Sandip Bhattacharya


Local SQLite Database with Node for beginners

17 Lectures 1 hours

Laurence Svekis


Angular 12, Python Django & SQLite Full Stack Web Development

5 Lectures 51 mins

Vinay Kumar