|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
Добрый день!!! У меня проблема, хочу создать триггер, который будет обновлять значения в атрибутах, при условии, если необходимый атрибут в кортеже будет равен 0. Создаю в IBExpert, субд Firebird 2.5. CREATE OR ALTER TRIGGER STORAGE_TRIG FOR STORAGE ACTIVE AFTER UPDATE POSITION 0 AS begin update storage set number_cell=null, date_crib=null, date_r_control=null where new.quantity_material='0'; end Все хорошо, он проводит транзакцию по его созданию, но ничего не работает, подскажите, пожалуйста, что я забыла указать здесь? Потому что в отдельность запрос update работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:03 |
|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
Foxsi, Код: sql 1.
эээ, просто ерунда какая-то. во-первых, почему new.quantity_material='0', а не new.quantity_material=0 ? quantity_material - это числовой или строковый столбец? Если числовой, зачем тогда пишете '0'? во-вторых, new.quantity_material - это переменная, внутри триггера, содержащая новое значение столбца. Поэтому условие where new.quantity_material = 0 не относится к таблице, а значит обновит вообще все записи (или ни одной, если условие false). В третьих... вы в триггере на STORAGE делаете update storage, т.е. саму же таблицу, что элементарно может вызвать рекурсию (зацикливание). В общем, есть подозрение что update вам тут нафиг не нужен, исходя из " который будет обновлять значения в атрибутах " Таким образом, содержимое триггера должно быть примерно такого вида Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:34 |
|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
kdv, Вы волшебник, цалую Вас в обе щёки)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:42 |
|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
Foxsi, это не все. у вас триггер ACTIVE AFTER UPDATE а в нем изменение столбцов уже НЕ работает, он после update, а не перед. Нужен BEFORE UPDATE. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:44 |
|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
Foxsi, почитайте документацию, там и примеры есть http://www.ibase.ru/files/firebird/langref25rus/index.html#langref25-ddl-trigger ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:46 |
|
Помогите разобраться с триггером
|
|||
---|---|---|---|
#18+
kdv, да да, я уже поняла, поставила before, и все отлично! на самом деле, я изначально так и начала писать триггер, но походу где-то вышла ошибочка, и тут я начала в разных интерпретациях тестить данную идею(( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2016, 21:47 |
|
|
start [/forum/topic.php?fid=40&msg=39206975&tid=1562249]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
31ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 433ms |
0 / 0 |