SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 26.05.2008 01:02:39

devushka
Участник
Зарегистрирован: 24.05.2008
Сообщений: 8

не работает процедура!

Есть процедура, кот позволяет найти мин и макс зарплату менеджеров в компании
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
почему? процедура правильно написана?

Неактивен

 

#2 26.05.2008 20:26:56

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

Re: не работает процедура!

Процедура написана правильно, только последняя строка "DELIMITER $$" не несет никакой смысловой нагрузки.

Судя по ошибке, описание процедуры, приведенное здесь и исполняемое, отличаются. Проверте внимательней.

Неактивен

 

#3 27.05.2008 00:16:57

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: не работает процедура!

Да, я тоже попробовал ваш код - нормально исполняется.
В каком клиенте Вы это делаете? (возможно, он не держит соединение и для каждого запроса открывает отдельную сессию - тогда DELIMITER сбросится обратно в точку с запятой; хотя все равно ошибка должна была бы быть тогда другая..)

Неактивен

 

#4 27.05.2008 00:40:56

devushka
Участник
Зарегистрирован: 24.05.2008
Сообщений: 8

Re: не работает процедура!

проблема сама как-то разрешилась)) работает след код:
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;

уж не знаю , в чем особая разница..., но все теперь в порядке. Спасибо

Неактивен

 

#5 27.05.2008 05:45:42

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

Re: не работает процедура!

А всё-таки, в каком клиенте Вы исполняете данный код?

Неактивен

 

Board footer

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