У меня проблема с созданием триггера. Я хочу сделать «копию» поля «nome» в «nome1» всякий раз, когда я вставляю запись (casello). Я получаю эту ошибку:Ошибка # 1442 MySQL - запуск триггера
#1442 - Can't update table 'casello' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Как я могу это исправить? это структура моего стола:
--
-- Struttura della tabella `casello`
--
CREATE TABLE IF NOT EXISTS `casello` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`posizione` double NOT NULL,
`nome` varchar(100) NOT NULL,
`nome1` varchar(100) DEFAULT NULL,
`modalita_pagamento` varchar(255) NOT NULL,
`servizio_assistenza` tinyint(1) DEFAULT NULL,
`l_nome` varchar(100) DEFAULT NULL,
`nome_autostrada` varchar(4) NOT NULL,
PRIMARY KEY (`id`),
KEY `l_nome` (`l_nome`),
KEY `nome_autostrada` (`nome_autostrada`),
KEY `nome` (`nome`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
--
-- Dump dei dati per la tabella `casello`
--
INSERT INTO `casello` (`id`, `posizione`, `nome`, `nome1`, `modalita_pagamento`,
`servizio_assistenza`, `l_nome`, `nome_autostrada`) VALUES
(3, 35, 'napoli nord', NULL, 'contanti, carte, telepass', 1, 'caserta', 'a1'),
(4, 15, 'napoli sud', NULL, 'contanti, carte, telepass', 1, 'napoli', 'a1'),
(5, 310, 'roma nord', NULL, 'contanti, carte, telepass', 1, NULL, 'a1'),
(6, 280, 'roma sud', NULL, 'contanti, carte, telepass', 1, NULL, 'a1'),
(11, 25, 'palma campania', 'NULL', 'contanti, carte, telepass', 1, NULL, 'a30'),
(12, 30, 'sarno', 'NULL', 'contanti, carte, telepass', NULL, NULL, 'a30'),
(13, 35, 'nocera', NULL, 'contanti, carte, telepass', 1, NULL, 'a30');
--
-- Triggers `casello`
--
DROP TRIGGER IF EXISTS `cp nome nome1`;
DELIMITER //
CREATE TRIGGER `cp nome nome1` AFTER INSERT ON `casello`
FOR EACH ROW UPDATE casello
set casello.nome1=casello.nome
//
DELIMITER ;
P.S. Конечно, если я это сделаю:
UPDATE casello
SET casello.nome1=casello.nome
как простой запрос он будет работать и копирует данные.
Это не работает, это дает мне ошибку 1442. – user2519507
В чем именно ошибка? Прекрасно подходит для меня. – fancyPants