Arhn - архитектура программирования

Триггер mysql вставляет повторяющиеся строки

Это первый раз, когда мне нужно создать триггер в mysql. Я пытаюсь обновить небольшую таблицу журнала (4 столбца), один из которых является URL-адресом. У меня это работает, за исключением того, что я не могу понять, как предотвратить вставку 2 строк при срабатывании триггера. Я не могу создать уникальный индекс в строке URL-адреса из-за максимальной длины ключа. Любые предложения по другим средствам? Я пробовал вставлять с помощью операторов select и использовать ON DUPLICATE KEY без успеха.

CREATE DEFINER=`dbuser`@`%` TRIGGER `upd_url_prod` AFTER UPDATE ON  `products` 
FOR EACH ROW BEGIN
INSERT INTO my_changes (ext_id,url,changetime)
VALUES (NEW.external_id,NEW.detail_url,NOW());

КОНЕЦ


  • Можете ли вы поделиться своим полным кодом создания триггера и шагами, которые приводят к активации триггера. Между ними есть несколько разных процессов, которые могут заставить данные вставляться дважды. 26.10.2018
  • Я обновил с полным кодом триггера. Это находится за сайтом WordPress, и я использую надстройку, чтобы попробовать импортировать продукты, а затем хочу иметь возможность регистрировать, когда он обновляется с помощью этого триггера. Исходя из SQL Server в любое время, когда мне нужно больше информации о том, что делает БД или ее объекты, я бы использовал профилировщик - есть ли что-нибудь подобное, что можно было бы предложить для этого здесь? 26.10.2018

Ответы:


1

Я думаю, вам нужно проверить свой запрос на обновление при срабатывании триггера. Возможно, этот запрос срабатывает два раза и срабатывает триггер. проверьте свой сценарий, в котором выполняется запрос на обновление, и зарегистрируйте этот запрос.

26.10.2018
  • Так что вы на самом деле правы - когда я профилирую начальное ОБНОВЛЕНИЕ в таблице, у меня есть триггер, который, похоже, запускает 2 идентичных обновления. Любые идеи, почему это было бы? И что я могу сделать, чтобы избежать этого? 08.11.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..