Я создаю эти две таблицы
CREATE TABLE Locais ( IdLocal int(5) NOT NULL, NomeLocl varchar(50) NOT NULL,
PRIMARY KEY (IdLocal) );
CREATE TABLE Missoes ( IdMissao int(5) NOT NULL, NomeMis varchar(50) NOT NULL,
IdLocalMis int(5) NULL, QtdEscaladosMis int(5) NULL, PRIMARY KEY (IdMissao) );
И мне нужно обновить значение Missoes.IdLocalMis до 999, чтобы удалить строку Locais, используя в качестве ссылки Locais.IdLocais.
Я создаю этот триггер
DELIMITER $
CREATE TRIGGER Tgr_tarefa_1 BEFORE DELETE
ON Locais FOR EACH ROW
BEGIN
UPDATE Missoes SET IdLocalMis = 99 WHERE IdLocalMis = OLD.IdLocal;
END$
DELIMITER ;
И я пытаюсь удалить одну строку в Locais, это сообщение появляется:
Operation failed: There was an error while applying the SQL script to the database.
Executing:
DELETE FROM `trabalho_bd_2`.`Locais` WHERE (`IdLocal` = '5');
ERROR 1175: 1175: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
SQL Statement:
DELETE FROM `trabalho_bd_2`.`Locais` WHERE (`IdLocal` = '5')
Что такое goin go on?