Рассмотрим таблицу TRADE_ORDERS
.Ошибка MYSQL 1442: невозможно обновить таблицу в триггере/хранимой процедуре
Symbol | Type | Count | Settled | Settled_count
------ | -----| ------| --------| -------------
Apple | BUY | 100 | NO | 0
Apple | BUY | 50 | NO | 0
Я написал триггер, который будет after_trade_orders_insert
AFTER INSERT
новой строки будет пытаться урегулировать предыдущие заказы в зависимости от если имеются неурегулированные заказов.
Теперь, если я INSERT
в TRADE_ORDERS
строка со значениями Apple, SELL, 150
, она должна оплатить все купленные акции. Поэтому предполагаемое действие должно привести к тому, что таблица будет ниже состояния.
Предусмотренное Выход
Symbol | Type | Count | Settled | Settled_count
------ | -----| ------| --------| -------------
Apple | BUY | 100 | YES | 100
Apple | BUY | 50 | YES | 50
Apple | SELL | 150 | YES | 150
Я понимаю, как писать код в MySQL, чтобы достичь. Но когда я пишу код, чтобы сделать это в after_trade_orders_insert
, он терпит неудачу с ошибкой
Код ошибки: 1442. Не удается обновить таблицу «NSE_FO» в хранимой функции/триггера, так как он уже используется заявление, которое вызывается этим хранимая функция/триггер. 0.055 сек.
Я понимаю, что это за ошибка и почему это происходит.
Вопрос: Как достичь ожидаемого результата?
Ok. Но разрешено ли мне обновлять любые другие строки одной таблицы? – bobdiya
, но он не может обновить вновь вставленную строку, для которой вы используете триггер. –
Если я намереваюсь обновить некоторые другие строки одной таблицы. Как мне это достичь? – bobdiya