SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.12.2017 21:46:30

zhuk
Участник
Зарегистрирован: 20.12.2017
Сообщений: 2

Ошибка в синтаксисе триггера insert

Здравствуйте, при создании триггера вставки в phpmyadmin (3.5.1) выдает ошибку синтаксиса 1064 в 7 линии


Код триггера:

if new.hometeam=new.guestteam
then
delete from matches
where new.hometeam=new.guestteam;
end if;

if new.walkover=1
then
insert into goals values
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null);
end if

Подскажите, в чем дело

Неактивен

 

#2 21.12.2017 11:52:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Ошибка в синтаксисе триггера insert

MySQL error 1064
Вероятно не указали delimiter
показывайте полностью код триггера и ошибки

Неактивен

 

#3 21.12.2017 21:12:32

zhuk
Участник
Зарегистрирован: 20.12.2017
Сообщений: 2

Re: Ошибка в синтаксисе триггера insert

В PHPMyAdmin в виде кода отображается лишь определение (триггер AFTER INSERT)
Ее код я и описал, в итоге решил проблему следующим кодом:

if new.hometeam=new.guestteam
then
delete from matches
where new.hometeam=new.guestteam;
elseif new.walkover=1
then
insert into goals values
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null);
end if

полный код:

CREATE TRIGGER `new_match` AFTER INSERT ON `matches`
FOR EACH ROW if new.hometeam=new.guestteam
then
delete from matches
where new.hometeam=new.guestteam;
elseif new.walkover=1
then
insert into goals values
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null),
(null, null, new.matchid, new.winner, null);
end if

Отредактированно zhuk (21.12.2017 21:16:01)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson