MyTetra Share
Делитесь знаниями!
Возможности SQL, которые не реализованы в SQLite
Время создания: 25.12.2012 11:55
Раздел: Компьютер - Программирование - SQL - SQLite3
Запись: xintrea/mytetra_syncro/master/base/1356422142es3q1awzde/text.html на raw.github.com

Возможности SQL, которые не реализованы в SQLite

SQLite поддерживает очень много фич SQL92. Гораздо легче перечислить, что SQLite не поддерживает в SL92, чем перечислять, что он поддерживает. Ниже перечислены неподдерживаемые фичи SQL92.

Список составлен в том порядке, в каком указанные возможности будут добавляться в SQLite. Чем выше фича, тем скорее она будет реализована. Реализация нижнего пункта списка отсутствует в планах разработки.

Ограничения "FOREIGN KEY"

Ограничения целостности "FOREIGN KEY" анализируются, но не выполняются.

Полная поддержка триггеров

Поддержка триггеров существует, но не полная. Отсутствуют следующие фичи: нет триггеров "FOR EACH STATEMENT" (сейчас все триггеры должны быть "FOR EACH ROW"); нет триггеров "INSTEAD OF" (сейчас триггеры "INSTEAD OF" разрешены только во вьюхах); нет рекурсивных триггеров, т.е. тех, которые вызывают сами себя.

Полная поддержка "ALTER TABLE"

"ALTER TABLE" поддерживается только в вариантах "RENAME TABLE" и "ADD COLUMN". Пропущены такие типы операторов "ALTER TABLE" как "DROP COLUMN", "ALTER COLUMN", "ADD CONSTRAINT" и так далее.

Вложенные транзакции

В настоящем реализованы только простые выполняемые транзакции.

"RIGHT" и "FULL OUTER JOIN"

Поддерживается "LEFT OUTER JOIN" но не "RIGHT OUTER JOIN" и не "FULL OUTER JOIN".

Запись во "VIEW"-хи

В SQLite "VIEW"-хи доступны только для чтения. На вьюхах вы не можете выполнять операции "DELETE", "INSERT" или "UPDATE". Но, если вы в этом нуждаетесь, то можете создать триггер, который запросами в своем теле выполнит "DELETE", "INSERT" или "UPDATE" вьюхи.

"GRANT" и "REVOKE"

Так как SQLite читает и пишет в простой дисковый файл, то права доступа, которые могут быть применены к базе, являются обычными правами доступа к файлу, определяемые операционной системой. Команды "GRANT" и "REVOKE", обычно применяемые в клиент-серверных РСУБД, не реализованы потому что, они не имеют смысла для встроенного движка баз данных.

Если вы найдете другие фичи SQL92, которые не поддерживаются в SQLite, пожалуйста, добавьте их на Вики-страницу http://www.sqlite.org/cvstrac/wiki?p=Unsupported

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования