|
|
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, создал триггер который должен запрещать удаление определенных записей, но взамен на это получаю стек ошибок, вот сам триггер: ТРИГГЕРCREATE OR REPLACE TRIGGER del_test before delete on test declare x number; BEGIN select count(tnum) into x from test where tnum=1001; if x>0 then raise_application_error(-20000,'Нельзя удалить запись'); end if; END; А вот сами ошибки: ОШИБКИORA-20000: Нельзя удалить запись ORA-06512: at "AIV.DEL_TEST", line 7 ORA-04088: error during execution of trigger 'AIV.DEL_TEST' При чем ошибки выходят независимо от того какую запись я хочу удалить. Где я допустил ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 16:57:10 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.o, Нигде. Все по-честному. Триггер проверяет, что есть записи, где tnum=1001. И если такие записи есть, то не даёт ничего удалять. А какие записи вы хотели спасти от удаления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 17:10:56 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
Egoрa.i.v.e.n.g.o, Нигде. Все по-честному. Триггер проверяет, что есть записи, где tnum=1001. И если такие записи есть, то не даёт ничего удалятьуверен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:11:45 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
andreymxEgoрa.i.v.e.n.g.o, Нигде. Все по-честному. Триггер проверяет, что есть записи, где tnum=1001. И если такие записи есть, то не даёт ничего удалятьуверен?че-то я вечером ступил нехрен читать профорум вечером в субботу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:13:27 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
EgoрА какие записи вы хотели спасти от удаления? Вот именно такие записи, где tnum=1001. Любые другие где tnum=1002,1003 и т.д. можно удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:24:51 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.oEgoрА какие записи вы хотели спасти от удаления? Вот именно такие записи, где tnum=1001. Любые другие где tnum=1002,1003 и т.д. можно удалять.а ты чего хотел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:28:17 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.o, Тогда вместо x>0 напишите :old.tnum=1001. А селект можно вообще удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:35:09 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
andreymxнехрен читать профорум вечером в субботу :)А я чойто заскучал, вот и зашёл от нефиг делать. А тут смотрю люди маются. Решил помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:38:50 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
Egoрa.i.v.e.n.g.o, Тогда вместо x>0 напишите :old.tnum=1001. А селект можно вообще удалить.там и триггер другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:42:55 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
andreymx, Что значит другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:44:35 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
Egoрandreymx, Что значит другой?ич роу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:45:39 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
EgoрТогда вместо x>0 напишите :old.tnum=1001. А селект можно вообще удалить. У него триггер - after statement... To: a.i.v.e.n.g.o, Так и задумано. Стек ошибок присутствует всегда. Ваш клиент их всех, а не только первую, выводит. Насилуйте разработчика клиента, если считаете это неправильным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:47:23 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
andreymx, Точно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 18:49:05 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.oВот именно такие записи, где tnum=1001. Любые другие где tnum=1002,1003 и т.д. можно удалять. Твой триггeр не даст удалить никакую запись (что с tnum=1002, что с 1003 и т.д.) если в таблице есть хоть одна запись с tnum=1001. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:00:18 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
SYТвой триггeр не даст удалить никакую запись (что с tnum=1002, что с 1003 и т.д.) если в таблице есть хоть одна запись с tnum=1001. в таком случае как дать понять триггеру, что можно удалять все записи, кроме тех, где tnum=1001? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:07:56 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.oв таком случае как дать понять триггеру, что можно удалять все записи, кроме тех, где tnum=1001? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И учти что если DELETE удаляет > 1 записи и хотя бы у одной из них tnum=1001, то весь DELETE откатится. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:11:50 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И учти что если DELETE удаляет > 1 записи и хотя бы у одной из них tnum=1001, то весь DELETE откатится. SY.[/quot] Понял, премного благодарен, попутно возник вопрос как правильно объясняется эта запись: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:24:38 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
a.i.v.e.n.g.oпопутно возник вопрос как правильно объясняется эта запись: Курение доки полeзно для здоровья. ЫНю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:33:06 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
SYЫНюСпасибо за поднятое настроение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2016, 19:35:00 |
|
||
|
Триггер на запрет удаления
|
|||
|---|---|---|---|
|
#18+
SYa.i.v.e.n.g.oпопутно возник вопрос как правильно объясняется эта запись:Курение доки полeзно для здоровья.RTFM DML Triggers: Correlation Names and Pseudorecords (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 08:55:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39254704&tid=1888105]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
195ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 509ms |

| 0 / 0 |
