1

Тема: Отказ от создания хранимой процедуры

Используется   
phpMyAdmin - 2.8.1

Есть процедура, находящаяся в скрипте создания БД.
Используя MySql Query Browser скрипт выполняется замечательно, включая данную процедуру...
[mono]
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`p` $$
CREATE PROCEDURE `test`.`p` (
                                    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 $$
DELIMITER ;
[/mono]


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

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

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

2

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

knight
Последняя версия phpMyAmdin тоже вызывает ошибку? Можете проверить здесь, если не хотите устанавливать (пользователь root без пароля). В ранних версиях DELIMITER комментировался, из-за чего происходил сбой.

Посмотрите, пожалуйста, данную тему: http://forum.php-myadmin.ru/viewtopic.php?pid=1933

Попробуйте использовать поле "Разделитель", под формой ввода sql-запроса.

3

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

всё работает, поставил новую версию админа...
начиная с  2.9.1 все работает как надо 
указываем разделить в окне выполнения запроса, при этом убираем Delimiter!  всё работает!
Hanut спасибо!

4

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

Можно пример решения проблемы? Что-то ничего не получается:(
Спасибо.

5

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

Pablito
Символы разделителя строки необходимо вводить в соответствующее поле находящееся на странице составления запроса. Естественно из самого запроса директиву DELIMITER надо убрать.

Если вы хотите видеть пример решения какой-то проблемы, то сначала приведите пример проблемы.

6 (изменено: Pablito, 2007-07-22 09:53:01)

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

У себя на компьютере я решил проблему так:

DROP FUNCTION IF EXISTS `bufinder_b2c`.`A`
//

CREATE DEFINER=`bufinder_root`@`localhost` FUNCTION `A`(
.....................
) RETURNS int(11)
begin
declare iCount      int default 0;
......................
return RES;
end;
//

При этом // указал как разделитель.

Но у хостинг-провайдера в его удаленном phpMyadmin-е нет для SQL возможности указывать разделитель (нет почему-то такого поля). И там я ничего сделать с процедурами никак не могу.
При чем у нас одинаковые версии phpMyadmin-а. Свежие.

7

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

Pablito
Какая версия MySQL на вашем хостинге? Дело в том, что данное поле может отсутствовать только на серверах MySQL ниже 5.0, что совершенно естественно, так как там функций и вьюшек нет.

8

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

Добро пожаловать в phpMyAdmin 2.6.2

MySQL 5.0.18-nt-log на mysql4.1gb.ua:3306

9

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

Pablito
phpMyAdmin 2.6.2 - это свежая версия?