Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Writable views / 12 сообщений из 12, страница 1 из 1
27.08.2003, 16:59
    #32249149
Ally
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Господа, помогите ламеру!
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
30.08.2003, 01:33
    #32251972
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Если нет триггеров INSTEAD, то никак.
...
Рейтинг: 0 / 0
09.09.2003, 09:56
    #32259397
Ally
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Victor, Вы не могли бы прислать какую-нибудь ссылку на IBMовскую документацию по триггерам INSTEAD?
(Из Ваших слов "Если нет..." я заключил, что на некоторых версиях OS/400 таковой тип триггеров есть, а на некоторых нет. Я просмотрел документацию по версиям V4R5 и V5R1, но ничего подходящего не встретил. Каковые версии имели в виду Вы?)
...
Рейтинг: 0 / 0
09.09.2003, 10:56
    #32259515
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
набери addpftrg в командой строке. там можно прочитать все о том, какие бывают триггеры.
*INSERT, *DELETE, *UPDATE, *READ
и никаких *INSTEAD
в v4r5 не было и *READ, на сколько я помню
...
Рейтинг: 0 / 0
09.09.2003, 10:59
    #32259522
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
еще можно посмтреть формат DDS, там несколько больше возможностей, чем располагает SQL, но в успехе я не уверен, увы :(
...
Рейтинг: 0 / 0
09.09.2003, 11:08
    #32259544
Okram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
А может есть другой вариант решения даной задачи?
Опиши контретнее задачу.
...
Рейтинг: 0 / 0
09.09.2003, 16:13
    #32260198
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Триггеры INSTEAD есть на DB2 UDB v8, а также Oracle и, помнится, MS SQL и Interbase. Везде они определяются на VIEW и делают что-то instead (вместо) чего-то. По смыслу вашего вопроса вам нужны именно такие триггеры. Но про AS/400 я практически ничего не знаю (видел один раз этот огромный ящик и листал книжку Солтиса - это все).
...
Рейтинг: 0 / 0
10.09.2003, 09:14
    #32260713
IBMer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
А почему бы не сделать 2 таблицы и объеденить их во view
...
Рейтинг: 0 / 0
10.09.2003, 10:24
    #32260812
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
А там insertable-view с union all есть? ;-)
...
Рейтинг: 0 / 0
15.09.2003, 13:53
    #32265086
Ally
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Нет, 2 Table -> 1 view тоже не получится - нельзя будет писать в этот объединенный файл.

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

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

(тьфу ты блин,ну и пьянка пошла...)
...
Рейтинг: 0 / 0
15.09.2003, 14:39
    #32265144
Alexey Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Writable views
Не совсем то что нужно, но может устроит.
Если создать пару вьюшек с 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
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Writable views / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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