SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 01.03.2011 19:40:23

mx2010
Участник
Зарегистрирован: 01.03.2011
Сообщений: 5

SELECT в CREATE PROCEDURE не рабоает

Простейший запрос

DROP PROCEDURE IF EXISTS proc;


CREATE PROCEDURE proc()

BEGIN
    SELECT a FROM B;
END;

Выдает:
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 'SELECT a FROM B;'
in line 3

Версия Mysql 5.0.18

Отредактированно mx2010 (01.03.2011 19:46:36)

Неактивен

 

#2 01.03.2011 20:20:26

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: SELECT в CREATE PROCEDURE не рабоает

DELIMITER не забывайте менять, иначе запрос заканчивается на первой точке
с запятой, а не на той, которая после END.

Неактивен

 

#3 01.03.2011 20:34:52

mx2010
Участник
Зарегистрирован: 01.03.2011
Сообщений: 5

Re: SELECT в CREATE PROCEDURE не рабоает

DELIMITER //

CREATE FUNCTION SimpleCompare(n INT, m INT)
  RETURNS VARCHAR(20)

  BEGIN
    DECLARE s VARCHAR(20);

    IF n > m THEN SET s = '>';
    ELSEIF n = m THEN SET s = '=';
    ELSE SET s = '<';
    END IF;

    SET s = CONCAT(n, ' ', s, ' ', m);

    RETURN s;
  END //

DELIMITER ;

Отредактированно mx2010 (01.03.2011 20:42:53)

Неактивен

 

#4 01.03.2011 20:43:29

mx2010
Участник
Зарегистрирован: 01.03.2011
Сообщений: 5

Re: SELECT в CREATE PROCEDURE не рабоает

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 'DELIMITER //

CREATE FUNCTION SimpleCompare(n INT, m INT)
RETURNS VARCHAR(2' at line 1

Неактивен

 

#5 01.03.2011 21:01:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: SELECT в CREATE PROCEDURE не рабоает

А вот это надо вставлять уже в нормальном клиенте. Например, mysql.

Неактивен

 

#6 01.03.2011 21:03:45

mx2010
Участник
Зарегистрирован: 01.03.2011
Сообщений: 5

Re: SELECT в CREATE PROCEDURE не рабоает

Это взято из mysql для версии 5.0
mysql.com
или тут ключевое слово сервер??

Отредактированно mx2010 (01.03.2011 21:12:29)

Неактивен

 

#7 01.03.2011 21:38:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: SELECT в CREATE PROCEDURE не рабоает

Последнего сообщения не понял вообще smile Вот как это делается в стандартном
клиенте mysql:

Код:

mysql> DELIMITER ;;
mysql> CREATE PROCEDURE proc()
    -> BEGIN
    ->     SELECT a FROM B;
    -> END;;
Query OK, 0 rows affected (0.00 sec)

Неактивен

 

Board footer

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