|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
Здравствуйте. При работе триггера BEFORE INSERT в таблицу table необходимо выполнить Код: sql 1.
(id не ключевое поле) При вставке новой позиции в таблицу table выходит сообщение #1442 - Can't update table 'table' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. Почитал, что вроде как MySQL при выполнении триггера не любит выполнять изменение данных в позициях, не относящихся к новой позиции, которая инициирует работу триггера. Подскажите, пожалуйста, как можно выйти из ситуации. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 05:44 |
|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
Это ошибка в логике построения триггера, а не в его работе. Триггер работает с ОДНОЙ записью. Поэтому никаких UPDATE ни с каким отборами не требуется, чтобы внести изменения в новые значения полей ЭТОЙ одной записи. Код: sql 1. 2. 3. 4. 5.
Однако на самом деле для решения этой задачи триггер не нужен в принципе. pole_date - оно же DATETIME или TIMESTAMP (если гений-дизайнер вдруг сделал его текстовым - изменить)? ну тогда достаточно почитать Reference manual в части Automatic Initialization and Updating for TIMESTAMP and DATETIME и не изобретать велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 07:21 |
|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
Спасибо большое, уже изучаю) Не подскажете как поступать если изменяемое поле не имеет отношение к датам? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 10:54 |
|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
UncleFedor32как поступать если изменяемое поле не имеет отношение к датам?У каждого поля обычно есть (а по-хорошему - всегда должно быть) DEFAULT значение. Пользуйтесь... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 11:11 |
|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
Akina, К сожалению не нашел варианта при котором в default можно занести sql-запрос, а задача требует именно этого, т.к. изменяемое поле не обязательно календарного формата. Может быть и число и строка. Поменять нужно все позиции таблицы у которых id тот же, что и в вставляемой записи, которая обрабатывается триггером ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 20:13 |
|
Ошибка при работе триггера на INSERT
|
|||
---|---|---|---|
#18+
Значит, составляйте INSERT INTO на основе этого запроса и литералов. Какие проблемы-то? на VALUES свет клином не сошёлся... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 21:13 |
|
|
start [/forum/topic.php?fid=47&msg=39843619&tid=1829034]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 150ms |
0 / 0 |