Ошибка при обновлении таблицы с помощью триггера

0

У меня есть триггерная настройка, которая каждый раз, когда создается новая таблица, она считывает идентификатор (который находится в 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, создающим новый элемент в таблице.

  • 0
    Опубликуйте весь триггер, создайте пожалуйста.
  • 0
    @davidbaumann davidbaumann Опубликовано. Пожалуйста, взгляните...
Показать ещё 1 комментарий
Теги:
database
mysqli

1 ответ

1

Вы не можете обновить таблицу. Триггер начинается, когда он ОБНОВЛЯЕТСЯ, а затем он должен делать UPDATE. Образуется бесконечный цикл. Попробуйте использовать дополнительную таблицу для хранения временных данных для последующего обновления правильной таблицы

  • 0
    Но он настроен AFTER INSERT . Я просто хочу CAST VAR в INT .... после.
  • 0
    Это не имеет значения. Вы не можете выполнить инструкции DML для таблицы, на которую наложен триггер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню