Хранимые процедуры в MySQL
Создано Евгений Злобин в августа 26, 2010Раньше мне как-то не приходилось работать с процедурами в MySQL. Решил заполнить этот пробел хоть каким-то практическим опытом. Хранимые процедуры появились в MySQL начиная с пятой версии. У меня дома как раз установлена версия 5.1.
Хранимые процедуры представляют собой набор команд SQL, которые могут компилироваться и храниться на сервере. Таким образом, вместо того, чтобы хранить часто используемый запрос, клиенты могут ссылаться на соответствующую хранимую процедуру. Это обеспечивает лучшую производительность, поскольку данный запрос должен анализироваться только однажды и уменьшается трафик между сервером и клиентом. Концептуальный уровень можно также повысить за счет создания на сервере библиотеки функций.
Для примера приведу написанный мной код процедуры, которая заполняет таблицу
· id: INT (AI)
· name: VARCHAR («тест»)
· desc: LONGTEXT («текст»)
· uid: INT (рандом)
случайными значениями:
DELIMITER $$
DROP PROCEDURE IF EXISTS `p1`$$
CREATE PROCEDURE `p1`()
BEGIN
DECLARE id INT;
DECLARE my_name VARCHAR(255);
DECLARE description LONGTEXT;
DECLARE uid INT;
SET id = 1;
WHILE id < 5 DO
SET my_name = CONCAT_WS(' ', MD5( RAND() ), id);
SET description = CONCAT_WS(' ', 'is desc', my_name);
SET uid = FLOOR( 1 + RAND() * ( 250000 - 1 ));
INSERT INTO my_table VALUES (id,my_name,description,uid);
SET id = id + 1;
END WHILE;
END$$
DELIMITER ;
Основная проблема с которой я столкнулся при написании – это то, что при добавлении вываливалась ошибка. Однако это всё было решено выставлением разделителя:
DELIMITER $$
Вот в этой статьей очень подробно описано что такое хранимые процедуры и с чем их есть.


Теперь хоть не много понятно что такое процедуры в MySQL оО
Понятно???? та тут так все запутано, что без 100 грам не розобраться! ))
Да лан мне вот до сих пор ничего не понятно, хотя бьюсь с этим делом уже пару месяцев=)
А чего непонятного-то? Это наподобие шейдера в видеокарте – заранее заготовленный алгоритм обработки данных определенного типа.
Отлично написаною Автору респект и уважуха. Спасибо – действительно полезная информация.
Честно говоря боюсь лезть в эту кучу. По простой причине.
Блин вродь и доступно написано, но как новечку непонятно:(
Хранимые процедуры это гуд, особенно на более продвинутых субд, вроде PosgreSQL в купе с триггерами.
mysql-продукт openSource, поэтому
Приятно, что можно использовать Хранимые процедуры(набор команд выполняющихся в самой базе).
Из приложения можно вызывать Хранимую процедуру ,
процесс происходит быстрее, не надо поддерживать connect с базой на каждую команду.
Ох, в большинстве случаев их не дают использовать хостеры. Даже вьюшки =(. Так что сначала надо хорошо почитать, какие возможности предоставляет ваш хостинг!
Вы хотите сказать, что не дают привилегии на объекты базы данных? Тогда смысл в базе?
Выбираете нормального хостера и пользуетесь вовсю
Информация написано на русском языке, но так сложно для понимания, нету опыта работы в подобном направлении, так возможно все было бы и полегче.
По-моему написано лучше чем в учебнике. Хотя возможно для новичков елементы кода будут непонятны.
Написано однозначно красиво, но в действительности, я сам вряд ли полезу, ну не для меня это. Залез как-то, наломал дров, пришлось друзей звать на помощь, в итоге пришлось движок на сервер пере закачивать:)) Вроде всё работает, ну и слава богу, а от добра – добра не ищут.
метод популярный в последние годы – 50 граммов хватит))
Кстати, откуда писали? Ну, учебник или что? Доки?
okoloblog, да инфа собиралась со всех мест – где мог найти ) а потом написал то, что нужно было мне.
честно говоря мне тоже не совсем всё понятно:( но я на это время не собираюсь тратить я не думаю что это так важно знать, год создаю и продвигаю сайты ни разу с этим вопросом не сталкивался, значит это и не так важно:)
seomen, для сайтов для Вордпрессе или Жумле, возможно, и не важно. Да и год, как говорится, не срок.
Неплохая статья. Довольно локанично все рассказываете. Стоит взять на заметку.
Хранимки очень удобно использовать с триггерами. У меня система обсчета статистики вся сделана именно на них: по записи в базу срабатывает триггер, вызывает хранимую процедуру, в коей заполняются все расчетные поля. В итоге просто заносишь данные в базу – а они сами раскладываются куда нужно. Ляпота