[Sqlite] логическая ошибка SQL при удалении таблицы перед удалением связанного представления
Всем Привет,
Надеюсь, что все вы живы и здоровы.
У меня есть любопытный вопрос, касающийся последовательности в SQL заявления с помощью SQLite.
У меня есть таблица [geometries] и табличное представление [FlagsGeometries].
Когда я делаю следующую последовательность действий:
1.
CREATE TABLE "newGeometries" ( columns definition)
2.
insert into newGeometries select * from Geometries
3.
drop table if exists Geometries
4.
alter table newGeometries rename to Geometries
Последний оператор генерирует исключение:
SQL logic error - error in view FlagsGeometries: no such table: main.Geometries
Этот пакет работает нормально на одном компьютере, но терпит неудачу на другом, используя тот же набор файлов sqlite версии.
Что я уже пробовал:
Чтобы решить эту проблему, я изменил код следующим образом:
1.
1. <pre> CREATE TABLE "newGeometries" ( columns definition)
2.
insert into newGeometries select * from Geometries
2.5 ****
drop view if exists FlagsGeometries****
3.
drop table if exists Geometries
4.
alter table newGeometries rename to Geometries
5.
****
CREATE VIEW [FlagsGeometries] AS select xxxxx from Geometries****
Эта модификация покроет проблему, но почему она не работает на всех компьютерах ?
Не стесняйтесь поделиться, если у вас есть объяснение.
Заранее Вам большое спасибо.
С уважением.
Мики
Richard MacCutchan
Все ли системы используют одну и ту же версию SQLite? С другой стороны, это может быть просто вопрос времени.