Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создание триггера на апдейт записи в текущей таблице
|
|||
|---|---|---|---|
|
#18+
Добрый день! Возникла проблема, нужно было сделать триггер, на апдейт записи в конкретной таблице, у которой sims_id совпадает с sims_id новой записи (То есть когда добавляется новая запись с таким же sims_id, у старой записи должен поставиться date_end равный date_start новой записи). Структура полей таблицы: id sims_id status_id date_start (Default: CURRENT_TIMESTAMP) date_end Код создания триггера: DELIMITER // CREATE TRIGGER sims_date_end BEFORE INSERT ON SimsToStatus FOR EACH ROW BEGIN UPDATE SimsToStatus SET date_end = NEW.date_start WHERE date_end is null and status_id is not null and sims_id = NEW.sims_id order by id desc limit 1; END; При этом триггер теперь не дает добавлять новые записи и при попытке инсертить запись с sims_id, который уже есть в таблице - выдает: [HY000][1442] Can't update table 'SimsToStatus' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. Подскажите кто сталкивался, в чем тут проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 13:58 |
|
||
|
Создание триггера на апдейт записи в текущей таблице
|
|||
|---|---|---|---|
|
#18+
Василий2k18в чем тут проблема?Проблема именно в том, что и написано - нельзя в триггере менять данные в других записях таблицы, действие на которой вызывает срабатывание триггера. Потому что это потенциально может привести к зацикливанию обработки.. Выносите логику добавления/обновления в хранимую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 14:13 |
|
||
|
Создание триггера на апдейт записи в текущей таблице
|
|||
|---|---|---|---|
|
#18+
Понял вас. Спасибо большое что направили ход мыслей в верное русло! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 14:21 |
|
||
|
Создание триггера на апдейт записи в текущей таблице
|
|||
|---|---|---|---|
|
#18+
Василий2k18 , лучше сначала вставляйте, потом проверяйте, что вставка выполнена, и только при положительном итоге проверки выполняйте обновление. Это я к тому, что Ваше изначальное TRIGGER BEFORE INSERT было ошибочным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 14:49 |
|
||
|
Создание триггера на апдейт записи в текущей таблице
|
|||
|---|---|---|---|
|
#18+
Akina, Понял, то есть нужно использовать After Insert? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:19 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1829867]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 149ms |

| 0 / 0 |
