Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Подскажите, пожалуйста, примеры вставляемого (insertable) и обновляемого (updateable) представления, работающего с несколькими таблицами. Не совсем понял то, что написано в документации. Смотрел не хабрахабре, с их примером тоже не разобрался. Можно на примере простых двух таблиц a и b:
create table a (id int, a1 int);
create table b (id int, b1 int);
Спасибо.
Неактивен
Неактивен
спасибо, большое. видел этот пример (пожалуй, он единственный в сети), но не понял, что к чему. Можно на примере приведенных мною двух таблиц?
Неактивен
А представление на какой именно запрос Вы хотите получить из своих таблиц a и b?
Неактивен
вот тут я и пытаюсь разобраться, как построить такой запрос. Если представление выглядит так:
CREATE VIEW aa AS SELECT a.a1, b.b1 FROM a,b WHERE a.id=b.id
то ничего не получается со вставкой данных. Как можнт выглядить представление, чтобы можно было выполнить insert и/или update?
Неактивен
Написанное вами представление допускает update.
Что касается insert, то
Обновляемое представление может допускать добавление данных (INSERT), если все поля таблицы-источника, не присутствующие в представлении, имеют значения по умолчанию.
следовательно insert в данном случае не получится.
Неактивен
то есть, если я объявлю поля id как поля со значениями по умолчанию, я смогу использовать insert? можно тогда одним запросом вставить в обе таблицы a и b?
Неактивен
Хм, у меня складывается впечатление, что статью вы не читали. А ведь автор работал, слова придумывал..
Обратите внимание: для представлений, основанных на нескольких таблицах, операция добавления данных (INSERT) работает только в случае если происходит добавление в единственную реальную таблицу.
Неактивен
читал, но не все понял и не всё запомнил. Значит insert и update возможны только в одну раельную таблицу. Спасибо. Сейчас буду пробовать
Неактивен
а для чего служит WITH CHECK OPTION . Как правильно пользоваться?
Неактивен
Если VIEW содержит WHERE, то не все строки таблицы принадлежат VIEW. Формально можно вставить строку (или обновить) так, чтобы новая строка не принадлежала VIEW - по умолчанию это не запрещается. Если в определении VIEW есть WITH CHECK OPTION, то операции INSERT и UPDATE не могут создать строку, которая не будет удовлетворять условию WHERE.
Неактивен
вот, теперь понял, наконец. Здорово, когда человек может хорошо объяснить. Спасибо
Неактивен
Страниц: 1