Spec-Zone.ru › SQLite

Разрешение имен объектов базы данных

В SQLite объект базы данных (таблица, индекс, триггер или представление) идентифицируется по имени объекта и имени базы данных, в которой он находится. Объекты базы данных могут находиться в основной базе данных, временной базе данных или во вложенной базе данных.

Синтаксис команд DROP TABLE, DROP INDEX, DROP VIEW, DROP TRIGGER, REINDEX, ALTER TABLE и многих других позволяет пользователю указать объект базы данных либо только по имени, либо по сочетанию имени и имени базы данных. Если база данных не указана в ссылке на объект, SQLite ищет объект с соответствующим именем в основной, временной и всех вложенных базах данных. Временная база данных проверяется первой, за ней следует основная база данных, а затем все вложенные базы данных в порядке их добавления. Ссылка разрешается к первой найденной записи. Например:

      /* Add a table named 't1' to the temp, main and an attached database */
      ATTACH 'file.db' AS aux;
      CREATE TABLE t1(x, y);
      CREATE TEMP TABLE t1(x, y);
      CREATE TABLE aux.t1(x, y);

      DROP TABLE t1;         /* Drop table in temp database */
      DROP TABLE t1;         /* Drop table in main database */
      DROP TABLE t1;         /* Drop table in aux database */

Если имя схемы указано в ссылке на объект, оно должно быть либо «main», либо «temp», либо именем схемы вложенной базы данных. Как и другие идентификаторы SQL, имена схем регистронезависимы. Если имя схемы указано, то только эта схема проверяется на наличие объекта с указанным именем.

Большинство ссылок на объекты могут разрешаться только на определенный тип объекта (например, ссылка, являющаяся частью оператора DROP TABLE, может разрешаться только на объект таблицы, а не на индекс, триггер или представление). Однако в некоторых контекстах (например, REINDEX) ссылка на объект может разрешаться на более чем один тип объекта. При поиске объектов с указанным именем в схемах баз данных объекты типов, которые не могут быть использованы в контексте ссылки, всегда игнорируются.

Эта страница была в последний раз изменена 08 января 2022 г. 05:02:57 UTC

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

Spec-Zone.ru

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