У меня есть триггерная настройка, которая каждый раз, когда создается новая таблица, она считывает идентификатор (который находится в varchar
) и преобразует его в integer
и сохраняет его в другом столбце.
Однако при запуске я сталкиваюсь со следующей ошибкой:
Can't update table 'products' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Это мой триггер:
CREATE TRIGGER 'var_to_int' AFTER INSERT ON 'products'
FOR EACH ROW UPDATE 'products'
SET 'int_id'= CAST('var_id' AS INT)
WHERE 'int_id' IS NULL OR 'int_id' = ''
Как я могу это предотвратить?
Эта ошибка генерируется скриптом PHP, создающим новый элемент в таблице.
Вы не можете обновить таблицу. Триггер начинается, когда он ОБНОВЛЯЕТСЯ, а затем он должен делать UPDATE. Образуется бесконечный цикл. Попробуйте использовать дополнительную таблицу для хранения временных данных для последующего обновления правильной таблицы
AFTER
INSERT
. Я просто хочу CAST
VAR
в INT
.... после.