Задавайте вопросы, мы ответим
Вы не зашли.
Есть процедура, находящаяся в скрипте создания БД.
Используя 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-а импортировал скрипт - тут и ошибка...говорит ошибка в синтаксисе...(
поставил админа у себя на машине.. тож самое..упорно не хотит создавать процедуру...
подскажите как с этим бороться?
зарание благодарен.
Неактивен
phpMyAdmin пытается выполнить все команды как одну, из-за этого
происходит ошибка. Вы можете выполнять их поочередно (реально
из всего этого списка смысл несет только CREATE PROCEDURE ... END).
Можете попробовать записать весь сценарий в файл и "выполнить
сценарий" в phpMyAdmin.
Неактивен
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;
Что не так?
Неактивен
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. Не забывайте писать сообщение об ошибке.
Неактивен
не помогло ))))
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
Неактивен
Неактивен
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 вообще можно сохранять процедуры?
Неактивен
Процедуры доступны с пятой версии MySQL.
Под 2.8.1. полагаю вы подразумевали phpMyAdmin. Про него ничего хорошего сказать не могу. Попробуйте MySQL GUI Tools
Неактивен