Задавайте вопросы, мы ответим
Вы не зашли.
Есть процедура, кот позволяет найти мин и макс зарплату менеджеров в компании
DELIMITER $$
create procedure calc_stavka(
IN vibor varchar(3))
begin
if vibor='max' then
select max(hour) as max_stavka from salary;
end if;
if vibor='min' then
select max(hour) as min_stavka from salary;
end if;
end$$
DELIMITER $$
ругается
ERROR 1064 (42000): 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 'calc_
stavka()' at line 1
почему? процедура правильно написана?
Неактивен
Процедура написана правильно, только последняя строка "DELIMITER $$" не несет никакой смысловой нагрузки.
Судя по ошибке, описание процедуры, приведенное здесь и исполняемое, отличаются. Проверте внимательней.
Неактивен
Да, я тоже попробовал ваш код - нормально исполняется.
В каком клиенте Вы это делаете? (возможно, он не держит соединение и для каждого запроса открывает отдельную сессию - тогда DELIMITER сбросится обратно в точку с запятой; хотя все равно ошибка должна была бы быть тогда другая..)
Неактивен
проблема сама как-то разрешилась)) работает след код:
DELIMITER $$
create procedure sravnenie_stavki(
IN vibor varchar(3))
begin
if vibor='max' then
select max(hour) as max_stavka from salary;
end if;
if vibor='min' then
select min(hour) as min_stavka from salary;
end if;
end;
уж не знаю , в чем особая разница..., но все теперь в порядке. Спасибо
Неактивен
А всё-таки, в каком клиенте Вы исполняете данный код?
Неактивен