powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер ( остлеживание изменений)
9 сообщений из 9, страница 1 из 1
Триггер ( остлеживание изменений)
    #39662046
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый всем. Почитал похожие темы на данном форуме но ответа так и не нашел .

Задача создать триггер который будет записывать в таблицу А изменения ( delete , update , insert ) наложенные на таблицу Б .

Пока что написал это :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace trigger test_log after insert or delete or update on test for  each row
 begin 
    if inserting then
          insert into table_log(rowid_change,id,nume,prenume,city,address)
          values (:old.rowid,:new.id,:new.nume,:new.prenume,:new.city,:new.address);
    elsif deleting then
          insert into table_log(rowid_change,id,nume,prenume,city,address)
          values(:old.rowid,:new.id,:new.nume,:new.prenume,:new.city,:new.address);
    elsif updating then
          insert into table_log(rowid_change,id,nume,prenume,city,address)
          values(:old.rowid,:new.id,:new.nume,:new.prenume,:new.city,:new.address);
    end if;
  end;



Компилится без проблем и ошибок нету, но он не работает . При попытке вставить строку ничего не происходит . Дальше не знаю куда копать . Ткните пжл носом где проблема . Спасибо .
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662049
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104При попытке вставить строку ничего не происходитА что, по-твоему, должно было бы произойти? http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662053
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicmaverick2104При попытке вставить строку ничего не происходитА что, по-твоему, должно было бы произойти? http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
Спасибо за ссылку но она у меня давно в закладках сидитю

Я хочу что бы именения накладывались на Таблицу Б и дублицировались на Таблицу А ( тут еще прописан rowid таблицы Б , чтоб знать что за строка изменилась.)
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662054
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104( тут еще прописан rowid таблицы Б , чтоб знать что за строка изменилась.)Особенно полезно знать rowid после delete. Ну и знание прежнего значения rowid инсерта бесценно.
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662055
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-maverick2104( тут еще прописан rowid таблицы Б , чтоб знать что за строка изменилась.)Особенно полезно знать rowid после delete. Ну и знание прежнего значения rowid инсерта бесценно.

А как быть с update ?
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662056
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104При попытке вставить строку ничего не происходит

Смотришь-то откуда? Из другой сессии? Если да, то не увидишь пока первая сессия не зафиксирует (COMMIT) изменения.

SY.
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662059
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

Да дело проблема оказалось в COMMIT, спасибо .
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662061
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104,

Для insert актуальны :new.* значения
Для delete актуальны :old.* значения
Для update актуальны :old.* и :new.* значения (что и как сохранять Вам решать)


зы
откуда знаете что ничего не происходит?

.....
stax
...
Рейтинг: 0 / 0
Триггер ( остлеживание изменений)
    #39662079
Фотография stells2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вам надо бы понять что есть ROWID, это не метка записи, это её адрес (тынц)
Следовательно, у удаленной строки нет этого адреса а хранить старый - нет смысла (читаем выше) да и что с ROWID бывает, так же полезно ознакомиться. Да и зачем ROWID если есть ID ?

2. Также, надо понять что есть триггер (тынц) что бы понимать о новых и старых значениях и прочем.

Ну и, вас не смущает что вы по сути тупо дублируете 3 раза вставку? Тут уж сами смотрите.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер ( остлеживание изменений)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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