Spec-Zone.ru › SQLite

ПРИСОЕДИНЕНИЕ БАЗЫ ДАННЫХ

1. Обзор

attach-stmt:

ПРИСОЕДИНИТЬ БАЗУ_ДАННЫХ выражение КАК имя_схемы

выражение:

литеральное значение параметр привязки имя схемы . имя таблицы . имя столбца унарный оператор expr expr бинарный оператор expr имя функции ( аргументы функции ) фильтрующее предложение over-предложение ( expr ) , CAST ( expr AS имя типа
) expr COLLATE имя_сортировки expr НЕ ПОДОБНО GLOB REGEXP MATCH expr expr ESCAPE expr expr ISNULL NOTNULL НЕ NULL expr ЕСТЬ НЕ РАЗЛИЧНЫЕ ОТ expr
expr НЕ МЕЖДУ expr И expr expr НЕ В ( запрос-выбор ) expr , имя-схемы . функция-таблицы ( expr ) имя-таблицы , НЕ СУЩЕСТВУЕТ ( запрос-выбор )
CASE expr WHEN expr THEN expr ELSE expr END raise-function

оператор_фильтрации:

ФИЛЬТР ( ГДЕ expr )

аргументы_функции:

DISTINCT expr , * ORDER BY ordering-term ,

ordering-term:

expr COLLATE collation-name DESC ASC NULLS FIRST NULLS LAST

literal-value:

CURRENT_TIMESTAMP numeric-literal string-literal blob-literal NULL ИСТИНА ЛОЖЬ ТЕКУЩЕЕ_ВРЕМЯ ТЕКУЩАЯ_ДАТА

over-строка:

СВЕРХУ имя-окна ( имя-базового-окна РАЗДЕЛЁННЫЙ ПО выражение , ПОРЯДОК ПО порядок-термин , спецификация-кадра )

спецификация-кадра:

ГРУППЫ МЕЖДУ НЕОГРАНИЧЕННЫМИ ПРЕДШЕСТВУЮЩИМИ И НЕОГРАНИЧЕННЫМИ ПОСЛЕДУЮЩИМИ ДИАПАЗОН СТРОКИ НЕОГРАНИЧЕННЫМИ ПРЕДШЕСТВУЮЩИМИ expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПОСЛЕДУЮЩИМИ expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПОСЛЕДУЮЩИМИ
Исключить Текущий Строка Исключить Группа Исключить Связи Исключить Нет Другие

ordering-term:

expr СОРТИРОВАТЬ имя_сортировки УБЫВАНИЕ ВОЗРАСТАНИЕ ПУСТО ПЕРВЫЙ ПУСТО ПОСЛЕДНИЙ

raise-function:

РАСШИРИТЬ ( ОТКАТ , сообщение об ошибке ) ПРОИГНОРИРОВАТЬ ПРЕРВАТЬ НЕУДАЧА

заявление select:

С РЕКУРСИВНАЯ выражение-с-общим-табличным-выражением , ВЫБЕРИТЕ УНИКАЛЬНЫЕ столбец-результата , ВСЕ ИЗ таблицы-или-подзапроса условие-соединения , ГДЕ выражение СГРУППИРУЙТЕ ПО выражение ПРИ выражение ,
ОКОННО имя-окна КАК определение-окна , значения ( выражение ) , , оператор-составного-выражения выборка-ядро УПОРЯДОЧИТЬ ПО ОГРАНИЧИТЬ выражение элемент-упорядочения , СМЕЩЕНИЕ выражение , выражение

общее-выражение-с-таблицей:

имя_таблицы ( имя_столбца ) КАК НЕ МАТЕРИАЛИЗОВАННЫЙ ( запрос_выборки ) ,

составной_оператор:

ОБЪЕДИНЕНИЕ ОБЪЕДИНЕНИЕ ПЕРЕСЕЧЕНИЕ ИСКЛЮЧЕНИЕ ВСЕ

оператор_соединения:

table-or-subquery join-operator table-or-subquery join-constraint

join-constraint:

USING ( column-name ) , ON expr

join-operator:

NATURAL LEFT OUTER JOIN , RIGHT FULL INNER CROSS

ordering-term:

expr COLLATE имя_сортировки DESC ASC NULLS первым NULLS последним

столбец_результата:

expr КАК псевдоним_столбца * имя_таблицы . *

таблица_или_подзапрос:

schema-name . table-name AS table-alias INDEXED BY index-name НЕТ INDEXED table-function-name ( expr ) , AS table-alias ( select-stmt ) ( table-or-subquery ) ,
join-clause

window-defn:

( base-window-name PARTITION BY expr , ORDER BY ordering-term , frame-spec )

frame-spec:

ГРУППЫ МЕЖДУ НЕОГРАНИЧЕННЫМИ ПРЕДШЕСТВУЮЩИМИ И НЕОГРАНИЧЕННЫМИ ПОСЛЕДУЮЩИМИ ДИАПАЗОН СТРОКИ НЕОГРАНИЧЕННЫМИ ПРЕДШЕСТВУЮЩИМИ expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПОСЛЕДУЮЩИМИ expr ПРЕДШЕСТВУЮЩИМИ ТЕКУЩАЯ СТРОКА expr ПОСЛЕДУЮЩИМИ
EXCLUDE CURRENT ROW EXCLUDE GROUP EXCLUDE TIES EXCLUDE NO OTHERS

type-name:

name ( signed-number , signed-number ) ( signed-number )

signed-number:

+ numeric-literal -

Инструкция ATTACH DATABASE добавляет другой файл базы данных к текущему соединению с базой данных. Файлы баз данных, которые были присоединены ранее, могут быть удалены с помощью команды DETACH DATABASE.

2. Подробности

Имя файла базы данных, подлежащей подключению, — это значение выражения, которое встречается перед ключевым словом AS. Имя файла базы данных следует той же семантике, что и аргумент имени файла для sqlite3_open() и sqlite3_open_v2(); специальное имя ":memory:" приводит к базе данных в памяти, а пустая строка — к новой временной базе данных. Аргумент имени файла может быть URI-именем файла, если обработка URI-имен файлов включена в подключении к базе данных. По умолчанию URI-имена файлов отключены, однако это может измениться в будущей версии SQLite, поэтому разработчики приложений должны планировать соответствующим образом.

Имя, которое встречается после ключевого слова AS, — это имя базы данных, используемой внутри SQLite. Имена схем 'main' и 'temp' относятся к основной базе данных и базе данных, используемой для временных таблиц. К основным и временным базам данных нельзя подключаться или отключаться.

К таблицам в подключённой базе данных можно обращаться, используя синтаксис имя_схемы.имя_таблицы. Если имя таблицы уникально во всех подключённых базах данных и в основных и временных базах данных, то префикс имя_схемы не требуется. Если две или более таблицы в разных базах данных имеют одинаковое имя, и префикс имя_схемы не используется при ссылке на таблицу, то выбирается таблица из базы данных, которая была подключена последней.

Транзакции, вовлеченные в несколько подключённых баз данных, являются атомарными, при условии, что главная база данных не ":memory:" и режим журнала journal_mode не WAL. Если основная база данных — ":memory:" или если режим журнала — WAL, то транзакции по-прежнему атомарны в каждом отдельном файле базы данных. Но если компьютер-хост выйдет из строя в середине COMMIT, где обновляются два или более файлов базы данных, то некоторые из этих файлов могут получить изменения, а другие — нет.

Существует ограничение, задаваемое с помощью sqlite3_limit() и SQLITE_LIMIT_ATTACHED, на количество баз данных, которые могут быть одновременно подключены к одному подключению к базе данных.

Эта страница была в последний раз изменена 05.12.2023 14:43:20 UTC

SQLite is in the Public Domain.
https://sqlite.org/lang_attach.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API