powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Writable views
12 сообщений из 12, страница 1 из 1
Writable views
    #32249149
Ally
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, помогите ламеру!
DB2/400.
Есть табличка Tbl с полями A,B,C,V
Нужно создать 2 вьюшки на неё: V1(A,B,C), V2(A,B,C), такие, что:
при вставке строки (a,b,c) в V1 в Tbl вносились бы значения a,b,c,1
при вставке строки (a,b,c) в V2 в Tbl вносились бы значения a,b,c,2

Как сие сделать?
...
Рейтинг: 0 / 0
Writable views
    #32251972
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нет триггеров INSTEAD, то никак.
...
Рейтинг: 0 / 0
Writable views
    #32259397
Ally
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor, Вы не могли бы прислать какую-нибудь ссылку на IBMовскую документацию по триггерам INSTEAD?
(Из Ваших слов "Если нет..." я заключил, что на некоторых версиях OS/400 таковой тип триггеров есть, а на некоторых нет. Я просмотрел документацию по версиям V4R5 и V5R1, но ничего подходящего не встретил. Каковые версии имели в виду Вы?)
...
Рейтинг: 0 / 0
Writable views
    #32259515
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
набери addpftrg в командой строке. там можно прочитать все о том, какие бывают триггеры.
*INSERT, *DELETE, *UPDATE, *READ
и никаких *INSTEAD
в v4r5 не было и *READ, на сколько я помню
...
Рейтинг: 0 / 0
Writable views
    #32259522
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще можно посмтреть формат DDS, там несколько больше возможностей, чем располагает SQL, но в успехе я не уверен, увы :(
...
Рейтинг: 0 / 0
Writable views
    #32259544
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может есть другой вариант решения даной задачи?
Опиши контретнее задачу.
...
Рейтинг: 0 / 0
Writable views
    #32260198
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггеры INSTEAD есть на DB2 UDB v8, а также Oracle и, помнится, MS SQL и Interbase. Везде они определяются на VIEW и делают что-то instead (вместо) чего-то. По смыслу вашего вопроса вам нужны именно такие триггеры. Но про AS/400 я практически ничего не знаю (видел один раз этот огромный ящик и листал книжку Солтиса - это все).
...
Рейтинг: 0 / 0
Writable views
    #32260713
IBMer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему бы не сделать 2 таблицы и объеденить их во view
...
Рейтинг: 0 / 0
Writable views
    #32260812
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А там insertable-view с union all есть? ;-)
...
Рейтинг: 0 / 0
Writable views
    #32265086
Ally
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, 2 Table -> 1 view тоже не получится - нельзя будет писать в этот объединенный файл.

Пока я вижу единственный вариант - это сделать 3 отдельных Table (1 общая и 2 "половинки"), у каждой на insert висит триггер, который добавляет запись в одну из 2 других таблиц. Но это - дублирование данных, а хотелось этого избежать, используя хитрые VIEW.

В DDS LF подобного тоже не нашел... Всё упирается в невозможность привязать trigger к LF, а не к PF.
...
Рейтинг: 0 / 0
Writable views
    #32265120
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит, вешайся!
а раскидать по мемберам, а потом обозвать PF разными именами для первого и второго мембера с помоцью ovrdbf тоже не получается? ничего ж не мешает сказать в триггеге *BEFORE ovrdbf, а в триггере *AFTER dltovr

(тьфу ты блин,ну и пьянка пошла...)
...
Рейтинг: 0 / 0
Writable views
    #32265144
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем то что нужно, но может устроит.
Если создать пару вьюшек с WITH LOCAL CHECK OPTION. И при этом требовать явного указания значение столбца V при вставке/редактировании.
CREATE VIEW VVV.V1 (A, B, C, V) AS
SELECT T1.A, T1.B, T1.C, T1.V
FROM TABLE1 AS T1
WHERE T1.V = 1
WITH LOCAL CHECK OPTION
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Writable views
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]