Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите разобраться с триггером
|
|||
|---|---|---|---|
|
#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&fpage=62&tid=1562249]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 140ms |

| 0 / 0 |
