SQLite ATTACH, база данных DETACH
БАЗА ДАННЫХ
Инструкция ATTACH DATABASE позволяет вам присоединить несколько файлов базы данных к текущему соединению с базой данных. Когда база данных присоединена, все ее содержимое доступно в глобальной области текущего файла базы данных.
Имя, которое появляется после ключевого слова AS, является именем базы данных, используемой внутри SQLite. Имена базы данных main и temp зарезервированы для первичной базы данных и базы данных для хранения временных таблиц и других временных объектов данных. Оба этих имени базы данных существуют для каждого подключения к базе данных и не должны использоваться для вложения, в противном случае вы получите предупреждение. Основные и временные базы данных не могут быть присоединены или отключены.
Таблицы в присоединенной базе данных могут использоваться как database-name.table-name. Когда имя таблицы является уникальным для всех подключенных баз данных, а также для основной и временной баз данных, префикс имени базы данных не требуется, но когда две или более таблиц в разных базах данных имеют одно и то же имя, необходимо указать желаемое таблица с использованием префикса имени базы данных.
Дополнительные базы данных могут быть присоединены к вашему текущему сеансу с помощью оператора ATTACH DATABASE. Это добавляет соединение с другой базой данных без замены выбранной вами базы данных.
Вот синтаксис:
ATTACH [DATABASE] имя файла AS имя_базы_данных;
Имя файла для присоединяемой базы данных - это значение выражения перед ключевым словом AS. Имя файла относится к пути и имени файла базы данных SQLite, а имя_базы_данных относится к логическому имени, с которым можно ссылаться на эту базу данных и ее объекты.
Пример:
Пример вывода:
D: / sqlite> sqlite3 medical.db sqlite> .database имя файла --- --------------- ------------------------ 0 основной D: /sqlite/medical.db
Здесь в приведенном выше примере показано, что основная база данных появляется, а другая база данных temp скрыта.
Давайте прикрепим две базы данных hr и medical.db с тремя псевдонимами: hrdb, medical и medical1
ATTACHhr AS hrdb;
ATTACH DATABASE 'medical.db' as 'medical';
ATTACH DATABASE 'medical.db' as 'medical1';
Теперь посмотрите статус текущего соединения.
Пример вывода:
sqlite> .database имя файла --- --------------- ------------------------ 0 основной D: /sqlite/medical.db 2 часа D: / sqlite / час 3 медицинский D: /sqlite/medical.db 4 medical1 D: /sqlite/medical.db
В приведенном выше примере мы прикрепили три базы данных, одна из которых hr, а две другие - medical.db с разными псевдонимами. Псевдоним для базы данных hr - hrdb, а для medical.db - medical и medical1.Если база данных, которую вы указали, уже не существует, то будет создана база данных с именем.
Теперь мы собираемся прикрепить базу данных main и temp и посмотреть результат ниже.
Пример вывода:
sqlite> прикрепить main как main; Ошибка: база данных уже используется sqlite> прикрепить temp как temp; Ошибка: база данных temp уже используется
БАЗА ДАННЫХ
Оператор SQLite DETACH DATABASE позволяет отсоединить и отделить именованную базу данных от соединения с базой данных, которое было присоединено с помощью оператора ATTACH. Если два или более файлов базы данных с одинаковыми именами были присоединены с несколькими псевдонимами, команда DETACH отключит только указанное имя, а остальная часть вложения останется прежней. База данных главная или временная не может быть отсоединена.
Чтобы отсоединить подключенную базу данных, синтаксис просто
Пример вывода:
БАЗА ДАННЫХ «Псевдоним-Имя»;
Пример:
Следующие базы данных уже прикреплены.
Пример вывода:
имя файла --- --------------- ------------------------------ 0 основной D: /sqlite/medical.db 2 часа D: / sqlite / час 3 медицинский D: /sqlite/medical.db 4 medical1 D: /sqlite/medical.db
Теперь, если мы хотим отсоединить базу данных hr, можно использовать следующую команду.
Пример вывода:
sqlite> detach DATABASE hrdb; sqlite> .database имя файла --- --------------- ------------------------ 0 основной D: /sqlite/medical.db 2 медицинский D: /sqlite/medical.db 3 medical1 D: /sqlite/medical.db
Теперь давайте попробуем отсоединить medical1 от medical.db следующим образом
sqlite> DETACH DATABASE 'medical1';
Теперь, если вы хотите проверить текущее вложение, вы обнаружите, что medical.db по-прежнему связан с «medical» и «main».
Пример вывода:
sqlite> .database имя файла --- --------------- -------------------------------- --- 0 основной D: /sqlite/medical.db 3 медицинский D: /sqlite/medical.db
Предыдущая: Команды DOT (.)
Далее: Типы данных
Новый контент: Composer: менеджер зависимостей для PHP , R программирования