SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 22.06.2007 02:28:21

Knight
Участник
Зарегистрирован: 14.06.2007
Сообщений: 4

Ошибка при создании хранимой процедуры!

Есть процедура, находящаяся в скрипте создания БД.
Используя MySql Query Browser  скрипт выполняется замечательно, включая данную процедуру...   

Код:

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`ins_page` $$
CREATE PROCEDURE `test`.`ins_page` (
                                    IN m_e_id    INT,
                                    IN name      VARCHAR(30),
                                    IN m_poz     INT UNSIGNED,
                                    IN m_vis     BOOL,
                                    IN s_title   VARCHAR(300),
                                    IN s_text    TEXT,
                                    IN s_poz     INT UNSIGNED,
                                    IN s_vis     BOOL
                                   )
BEGIN
DECLARE EXIT HANDLER FOR SQLWARNING, NOT FOUND, SQLEXCEPTION ROLLBACK;
START TRANSACTION;
INSERT INTO `entity_description` (e_id, name, pozition, visible) VALUES (m_e_id, name, m_poz, m_vis);
INSERT INTO `pages` (e_id, d_id, title, textHTMl, published, pozition, visible)
            VALUES  (m_e_id, LAST_INSERT_ID(), s_title, s_text, NOW(), s_poz, s_vis);
COMMIT;
END $$

но попытался перетащить всё это дело на хост..., открыл phpMyadmin-а импортировал скрипт - тут и ошибка...говорит ошибка в синтаксисе...(

поставил админа у себя на машине.. тож самое..упорно не хотит  создавать процедуру...

подскажите как с этим бороться?
зарание благодарен.

Неактивен

 

#2 22.06.2007 12:42:39

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

Re: Ошибка при создании хранимой процедуры!

phpMyAdmin пытается выполнить все команды как одну, из-за этого
происходит ошибка. Вы можете выполнять их поочередно (реально
из всего этого списка смысл несет только CREATE PROCEDURE ... END).

Можете попробовать записать весь сценарий в файл и "выполнить
сценарий" в phpMyAdmin.

Неактивен

 

#3 14.09.2009 18:03:56

nataly
Участник
Зарегистрирован: 14.09.2009
Сообщений: 3

Re: Ошибка при создании хранимой процедуры!

CREATE PROCEDURE add_order_cast(order_id$ int, menu_id$ int, reg_id$ int, quant$ int)
BEGIN
DECLARE menu_price$ int;
SELECT price*quant$ into menu_price FROM menu_price where menu_id = menu_id$ and reg_id = reg_id$;
INSERT INTO order_cast(order_id, menu_id, quant, cost) values (order_id$, menu_id$, quant$, menu_price$);
END;

Что не так?

Неактивен

 

#4 14.09.2009 20:10:52

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

Re: Ошибка при создании хранимой процедуры!

SELECT price*quant$ into menu_price FROM menu_price where menu_id = menu_id$ and reg_id = reg_id$;

menu_price незадекларированная переменная. Строкой выше у вас определена переменная menu_price$.

P.S. Не забывайте писать сообщение об ошибке.

Неактивен

 

#5 14.09.2009 21:33:17

nataly
Участник
Зарегистрирован: 14.09.2009
Сообщений: 3

Re: Ошибка при создании хранимой процедуры!

не помогло ))))

SQL-запрос:

CREATE PROCEDURE add_order_cast( order_id$ int, menu_id$ int, reg_id$ int, quant$ int ) BEGIN DECLARE menu_price$ int;



Ответ MySQL: 

#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 3

Неактивен

 

#6 14.09.2009 21:52:09

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

Re: Ошибка при создании хранимой процедуры!

delimiter $$
CREATE PROCEDURE add_order_cast(order_id$ int, menu_id$ int, reg_id$ int, quant$ int)
BEGIN
DECLARE menu_price$ int;
SELECT price*quant$ into menu_price$ FROM menu_price where menu_id = menu_id$ and reg_id = reg_id$;
INSERT INTO order_cast(order_id, menu_id, quant, cost) values (order_id$, menu_id$, quant$, menu_price$);
END$$

Неактивен

 

#7 15.09.2009 12:09:29

nataly
Участник
Зарегистрирован: 14.09.2009
Сообщений: 3

Re: Ошибка при создании хранимой процедуры!

SQL-запрос:

delimiter $$ CREATE PROCEDURE add_order_cast( order_id$ INT, menu_id$ INT, reg_id$ INT, quant$ INT ) BEGIN DECLARE menu_price$ INT;



Ответ MySQL: 

#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 'delimiter $$
CREATE PROCEDURE add_order_cast(order_id$ INT, menu_id$ INT, reg_i' at line 1

Скажите, а в версии 2.8.1 вообще можно сохранять процедуры?

Неактивен

 

#8 15.09.2009 12:37:06

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

Re: Ошибка при создании хранимой процедуры!

Процедуры доступны с пятой версии MySQL.
Под 2.8.1. полагаю вы подразумевали phpMyAdmin. Про него ничего хорошего сказать не могу. Попробуйте MySQL GUI Tools

Неактивен

 

Board footer

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