ошибка 1064 при создании триггера на сервере mysql верстак - PullRequest
0 голосов
/ 19 марта 2020

Я создал в Mysql верстаке a триггер до вставки в столбце "age", и он работал, но при попытке создать еще один, такой же, как первый в столбце "weight", я получил ошибку. Я написал это:

CREATE DEFINER = CURRENT_USER TRIGGER `bloodbank`.`donor_BEFORE_INSERT_1` BEFORE INSERT ON `donor` FOR EACH ROW
BEGIN
if(new.weight<50)
then
signal sqlstate '02000' set message_text='WEIGHT<50';
end if;

END

, когда я нажимаю кнопку «Применить», мой код преобразуется в это:

DROP TRIGGER IF EXISTS `bloodbank`.`donor_BEFORE_INSERT`;

DELIMITER $$
USE `bloodbank`$$
CREATE DEFINER = `root`@`localhost` TRIGGER `bloodbank`.`donor_BEFORE_INSERT` BEFORE INSERT ON `donor` FOR EACH ROW PRECEDES `donor_BEFORE_INSERT_1`
$$
DELIMITER ;
DROP TRIGGER IF EXISTS `bloodbank`.`donor_BEFORE_INSERT_1`;

DELIMITER $$
USE `bloodbank`$$
CREATE DEFINER = CURRENT_USER TRIGGER `bloodbank`.`donor_BEFORE_INSERT_1` BEFORE INSERT ON `donor` FOR EACH ROW
BEGIN
if(new.weight<50)
then
signal sqlstate '02000' set message_text='WEIGHT<50';
end if;

END$$
DELIMITER ;

, и ошибка, с которой я сталкиваюсь:


Operation failed: There was an error while applying the SQL script to the database.
ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
SQL Statement:
CREATE DEFINER = `root`@`localhost` TRIGGER `bloodbank`.`donor_BEFORE_INSERT` BEFORE INSERT ON `donor` FOR EACH ROW PRECEDES `donor_BEFORE_INSERT_1`
...