Как работают вставки в представлениях sqlite? - PullRequest
3 голосов
/ 14 апреля 2011

У меня есть схема базы данных, которая идентична в файлах с 1.sqlitedb по n.sqlitedb. Я использую вид, чтобы «объединить» все базы данных. Мой вопрос: когда я вставляю в представление, в какую базу данных вставляются данные? Есть ли способ контролировать, кто получает данные? То, как мне нужно разделить данные, зависит от самих данных. По сути, я использую первую букву поля, чтобы определить файл, в который оно вставляется. Любая помощь будет оценена. Спасибо!

Ответы [ 3 ]

4 голосов
/ 15 апреля 2011

Запись в представления НЕ поддерживается для SQLite, как это происходит с другими базами данных.

http://www.sqlite.org/omitted.html

Для достижения аналогичной функциональности необходимо создать триггеры для выполнения необходимой работы.

0 голосов
/ 07 декабря 2015

Нам нужно реализовать вместо триггера в представлении (VIEW_NAME). Поэтому при вставке / обновлении происходит просмотр. мы можем вставить обновленный базовый объект (TABLE_NAME) в тело триггера.

CREATE TRIGGER триггерное имя вместо INSERT для VIEW_NAME НАЧАТЬ вставить в TABLE_NAME (col1, col2) значения (: new.col1,: new.col2); END;

0 голосов
/ 15 апреля 2011

Я не уверен, что понимаю ваш вопрос, но рассматривали ли вы использование команды ATTACH DATABASE?Это позволяет подключать отдельные файлы базы данных к одной базе данных.Вы можете управлять INSERT в конкретной базе данных, добавляя префикс имени базы данных (INSERT INTO db1.Table).

http://www.sqlite.org/lang_attach.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...