[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Использование триггеров
Markus111
Здравствуйте, я создал триггеры
DROP TRIGGER `novosty_after_insert`;
DELIMITER ;;
CREATE TRIGGER novosty_after_insert AFTER INSERT ON novosty FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '1');
END;;
DELIMITER ;

DROP TRIGGER `statia_after_insert`;
DELIMITER ;;
CREATE TRIGGER statia_after_insert AFTER INSERT ON statia FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '2');
END;;
DELIMITER ;


проблема в том что эти триггеры начали делать дублирующие записи, объясните где я ошибся или это надо делать подругому

_____________
https://t.me/pump_upp
kaww
что значит триггеры начали делать дублирующие записи? раньше было норм а сейчас вдруг? И какие записи дублируют? можно подробнее?
Markus111
Вот часть бэкапа, тригеров у меня 5
(1, 'Прекрасный баланс обновленной  Subaru BRZ 2013', 1, 1),
(2, 'Прекрасный баланс обновленной Subaru BRZ 2013', 1, 3),
(3, 'Прекрасный баланс обновленной Subaru BRZ 2013', 1, 2),
(4, 'Прекрасный баланс обновленной Subaru BRZ 2013', 1, 4),
(5, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 4),
(6, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 3),
(7, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 1),
(8, 'Простые советы как сэкономить деньги, пользуясь автомобилем', 3, 3),
(10, 'Сравнение Toyota Land Cruiser и Lexus LX 570 2013', 5, 3),
(11, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 2),
(12, 'Простые советы как сэкономить деньги, пользуясь автомобилем', 3, 2),
(13, 'Простые советы как сэкономить деньги, пользуясь автомобилем', 3, 1),
(15, 'Простые советы как сэкономить деньги, пользуясь автомобилем', 3, 4),
(17, 'Сравнение Toyota Land Cruiser и Lexus LX 570 2013', 5, 1),
(18, 'Немного о характеристиках BMW 125D', 6, 1),
(19, 'Honda Accord 2013 – пока без конкурентов', 7, 1),
(20, 'Lexus CT 200h - копия гибридного Toyota Prius', 8, 1),
(75, 'Lexus CT 200h - копия гибридного Toyota Prius', 8, 6),
(22, 'Лучший пикап', 9, 1),
(23, 'Немного о характеристиках BMW 125D', 6, 3),
(24, 'Дебют Lexus GS 350', 10, 1),
(25, 'Сравнение Toyota Land Cruiser и Lexus LX 570 2013', 5, 4),
(26, 'Сравнение Toyota Land Cruiser и Lexus LX 570 2013', 5, 2),
(27, 'Возможен ли кабриолет Honda Accord', 11, 1),
(28, 'Первый выезд на дорогу Volkswagen Golf', 12, 1),
(29, 'Honda Accord 2013 – пока без конкурентов', 7, 3),
(30, 'Немного о характеристиках BMW 125D', 6, 2),
(31, 'Немного о характеристиках BMW 125D', 6, 4),
(32, 'Honda Accord 2013 – пока без конкурентов', 7, 2),
(33, 'Lexus CT 200h - копия гибридного Toyota Prius', 8, 2),
(34, 'Лучший пикап', 9, 2),
(35, 'Lexus CT 200h - копия гибридного Toyota Prius', 8, 3),
(36, 'Porsche 911 Carrera 4 и Porsche 911 Carrera 4S', 13, 1),
(37, 'Дизайн Jaguar XF Sportbrake 2013 года', 14, 1),
(38, 'Лучший пикап', 9, 3),
(39, 'Мировая премьера Mazda 6', 18, 1),
(41, 'Дебют Lexus GS 350', 10, 2),
(42, 'Volvo отзывает автомобили. Отзыв XC70 и S80', 19, 1),
(43, 'Возможен ли кабриолет Honda Accord', 11, 2),
(45, 'Porsche 911 Carrera 4 и Porsche 911 Carrera 4S', 13, 2),
(46, 'Отзыв BMW M5 и BMW M6', 20, 1),
(47, 'Дебют Lexus GS 350', 10, 3),
(48, 'Возможен ли кабриолет Honda Accord', 11, 3),
(49, 'Первый выезд на дорогу Volkswagen Golf', 12, 3),
(50, 'Первый выезд на дорогу Volkswagen Golf', 12, 3),
(51, 'Разработка нового Lincoln MKZ', 21, 1),
(52, 'Компактный седан Nissan Sentra 2013', 22, 1),
(53, 'Porsche 911 Carrera 4 и Porsche 911 Carrera 4S', 13, 3),
(54, 'Новый автомобиль Cadillac XTS', 23, 1),
(55, 'Дизайн Jaguar XF Sportbrake 2013 года', 14, 3),
(59, '2013 Volkswagen Beetle Convertible – первые новости', 15, 3),


_____________
https://t.me/pump_upp
kaww
Markus111
Можете конкретно в этом куске бэкапа показать записи добавленные одним триггером? я не нашел (проверял разумеется не все)
Markus111
Вот,

(5, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 4),
(6, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 3),
(7, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 1),


должен сработать триггер

DROP TRIGGER `novosty_after_insert`;
DELIMITER ;;
CREATE TRIGGER novosty_after_insert AFTER INSERT ON novosty FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '1');
END;;
DELIMITER ;


_____________
https://t.me/pump_upp
Markus111
или вот еще

(22, 'Лучший пикап', 9, 1),
(34, 'Лучший пикап', 9, 2),
(38, 'Лучший пикап', 9, 3),

триггер

DROP TRIGGER `statia_after_insert`;
DELIMITER ;;
CREATE TRIGGER statia_after_insert AFTER INSERT ON statia FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '2');
END;;
DELIMITER ;


_____________
https://t.me/pump_upp
kaww
все верно. этот триггер сработал, причем ровно 1 раз и добавил запись с ид 7 (7, 'Закон об увеличении штрафов за нарушение проезда через железнодорожный переезд', 2, 1), видимо есть еще триггеры или скрипты которые делают запросы с cat = 3 и 4
Markus111
вот все мои триггеры

DROP TRIGGER `novosty_after_insert`;
DELIMITER ;;
CREATE TRIGGER novosty_after_insert AFTER INSERT ON novosty FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '1');
END;;
DELIMITER ;

DROP TRIGGER `statia_after_insert`;
DELIMITER ;;
CREATE TRIGGER statia_after_insert AFTER INSERT ON statia FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '2');
END;;
DELIMITER ;

DROP TRIGGER `test_drive_after_insert`;
DELIMITER ;;
CREATE TRIGGER test_drive_after_insert AFTER INSERT ON test_drive FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '3');
END;;
DELIMITER ;

DROP TRIGGER `history_after_insert`;
DELIMITER ;;
CREATE TRIGGER history_after_insert AFTER INSERT ON history FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '4');
END;;
DELIMITER ;

DROP TRIGGER `inf_after_insert`;
DELIMITER ;;
CREATE TRIGGER inf_after_insert AFTER INSERT ON information FOR EACH ROW
BEGIN
INSERT INTO title (title, id_statia, cat) VALUES (NEW.title, NEW.id, '6');
END;;
DELIMITER ;


у каждого из них же прописано условие когда срабатывать
например
AFTER INSERT ON novosty FOR EACH ROW

_____________
https://t.me/pump_upp
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.