SQLite Attach Database

Предположим ситуацию, когда одновременно доступно несколько баз данных и вы хотите использовать любую из них. Инструкция SQLiteATTACH DATABASEиспользуется для выбора конкретной базы данных. После использования этой команды все инструкции SQLite будут выполняться в присоединённой базе данных.

Синтаксис

Базовый синтаксис инструкции ATTACH DATABASE в SQLite выглядит следующим образом:

ATTACH DATABASE file_name AS database_name;

Если база данных ещё не создана, приведённая выше команда создаст базу данных. Если база данных уже существует, она связывает имя файла базы данных с логическим именем базы данных 'Alias-Name'.

Открытая база данных и база данных, присоединённая с помощью ATTACH, должны находиться в одной папке.

Пример

Если вы хотите присоединить существующую базу данныхtestDB.db, то инструкция ATTACH DATABASE будет выглядеть следующим образом:

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

Используйте команду SQLite.databaseдля отображения присоединённых баз данных.

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

Имена баз данныхmainиtempзарезервированы для основной базы данных и базы данных, которая хранит временные таблицы и другие временные объекты данных. Эти два имени баз данных можно использовать для каждого подключения к базе данных, и их не следует использовать для присоединения, иначе вы получите предупреждающее сообщение, как показано ниже:

sqlite>  ATTACH DATABASE 'testDB.db' as 'TEMP';
Error: database TEMP is already in use
sqlite>  ATTACH DATABASE 'testDB.db' as 'main';
Error: database main is already in use;
Другие расширения