|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Добрый день. Код: sql 1.
Прошу помочь исправить ошибку, которая появляется при выполнении тригера. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 06:59 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Что делает этот триггер? А делает он следующее - если текущий UPDATE запрос изменяет значение поля name_company в одной записи, то установить значение поля name_consumer равным новому значению name_company для всех записей таблицы. И то же самое для поля fio_consumer. Ну то есть бред голимый, не иначе... А чтобы помочь исправить, надо понимать, что же должен на самом деле делать этот триггер. Но из исходного сообщения это понять невозможно в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 07:24 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Akina, благодарю за неравнодушие. Задача: при любом изменении в поле "name_company", записать новое значение в поле "name_consumer" соответствующей строки. при любом изменении в поле "fio_consumer", записать новое значение в поле "name_consumer" соответствующей строки. Физически пользователь может менять только или "name_company", или "fio_consumer" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 07:45 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Добавил условие WHERE, но все-равно ошибка та же, что на скрине Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 07:57 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:37 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Основные ошибки. 1) Триггер работает с ОДНОЙ записью - той, которая в данный момент изменяется. Т.е. нет никакой необходимости апдейтить всю таблицу, выбирая ту же запись, ибо все её значения (и старые, и новые) доступны через псевдотаблицы OLD и NEW. 2) Изменение обновляемых (новых) значений бессмысленно пытаться делать в триггере AFTER - ведь на этот момент обновление уже выполнено. Гораздо проще заменить новые значения в BEFORE триггере, чтобы обновление прошло именно ими, а не тем, что подавалось из запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:41 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
Akina, благодарю Вас. Ррработает!) Не скажу, что я все понял, но всё же чуть прояснилось. Я хотел реализовать через If THEN ELSE ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 14:24 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
quickstarхотел реализовать через If THEN ELSECASE и есть множественный IF - THEN - ELSEIF - ELSE ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 15:22 |
|
Ошибка триггера на UPDATE
|
|||
---|---|---|---|
#18+
quickstar, Если по вашему примеру, попробуйте так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Недавно потихоньку стал переносить часть логики с клиента на сервер, пришлось поплотней окунуться в mysql , позавчера с такой же ошибкой столкнулся) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:43 |
|
|
start [/forum/topic.php?fid=47&fpage=33&tid=1829063]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 122ms |
0 / 0 |