Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Trigger INSERT or UPDATE / 10 сообщений из 10, страница 1 из 1
13.03.2020, 12:21
    #39937021
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Допустим есть таблица Table

X VALUES
-1
-2
-5
1
2

Нужен триггер на данную таблицу после INSERT or UPDATE

в значении валуе автоматом присваивалось значение 'MINUS'
...
Рейтинг: 0 / 0
13.03.2020, 12:25
    #39937026
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Frequency,

drop column
add column as ('MINUS')
...
Рейтинг: 0 / 0
13.03.2020, 12:26
    #39937028
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Frequency
Нужен триггер на данную таблицу после INSERT or UPDATE
Нужен? - Делай!
Какие конкретно проблемы?
...
Рейтинг: 0 / 0
13.03.2020, 12:33
    #39937036
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
извиняюсь если в столбец х INSERT или UPDATE отрицательное значение < 0 , чтобы триггер срабатывал и изменял VALUES = 'MINUS' где все значение х < 0

на подобии

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE OR REPLACE TRIGGER TEST.TABLE_UPT

BEFORE UPDATE ON TEST.TAB FOR EACH ROW


BEGIN

        IF (INSERTING) AND :NEW.X < 0 
                THEN 
                     UPDATE TEST.TAB
                        SET VAL = 'MINUS'
                     WHERE X < 0 ;
                     
         END IF;

         
         
         
END;

/



при INSERT норм спрабатывает при UPDATE выдает ошибку


Код: xml
1.
2.
3.
ORA-04091: table TEST.TAB is mutating, trigger/function may not see it
ORA-06512: at "TEST.TABLE_UPT", line 14
ORA-04088: error during execution of trigger 'TEST.TABLE_UPT'
...
Рейтинг: 0 / 0
13.03.2020, 12:37
    #39937039
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
...
Рейтинг: 0 / 0
13.03.2020, 12:37
    #39937040
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Код: plsql
1.
:NEW.VAL := 'MINUS'
...
Рейтинг: 0 / 0
13.03.2020, 12:43
    #39937043
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Frequency,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
SQL> ed
Wrote file afiedt.buf

  1  CREATE OR REPLACE TRIGGER t$biu
  2  BEFORE INSERT OR UPDATE  ON t FOR EACH ROW
  3  begin
  4    If :new.x<0 then :new.value:='MINUS'; else :new.value:=null; end if;
  5* end;
SQL> /

Trigger created.

SQL> insert into t(x) values(1);

1 row created.

SQL> insert into t(x) values(-1);

1 row created.

SQL> insert into t(x) values(2);

1 row created.

SQL> update t set x=-x;

3 rows updated.

SQL> select * from t;

          X VALUE
----------- ----------
     -1.000 MINUS
      1.000
     -2.000 MINUS

SQL>



....
stax
...
Рейтинг: 0 / 0
13.03.2020, 12:53
    #39937046
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
что-то я совсем ступел. Спасибо большое
...
Рейтинг: 0 / 0
13.03.2020, 12:54
    #39937047
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
особенно Stax за подробную инфу
...
Рейтинг: 0 / 0
13.03.2020, 13:35
    #39937067
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger INSERT or UPDATE
Frequency
особенно Stax за подробную инфу


Код: plsql
1.
2.
3.
4.
5.
create table tbl(
                 x number,
                 value as (case when x < 0 then 'MINUS' end)
                )
/



SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Trigger INSERT or UPDATE / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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