ПредишенСледващото

Long мъчен с въпроса. Литература в интернет малко, особено на руски. Аз трябваше да поразпитам в чужди форуми, по-дълбоко копаят в ръководствата и да се изясни за себе си някои странни моменти. Така че, накратко за съхраняваните процедури в MySQL.

Съхранени процедури - какво е това?

Съхранени процедури се появиха след 5 версия MySQL. Те ви позволяват да се автоматизира сложните процеси на нивото на MySQL, а не с помощта на външни скриптове за това. Това ни дава най-високата скорост на изпълнение, тъй като ние не карам голям брой заявки, но само веднъж се обадите на конкретна процедура (или функция).

Какво ви е необходимо? Инсталиране на сървъра версия на MySQL 5 или по-висока (dev.mysql.com/downloads). Процедури Можете да създадете заявки, като в командния ред MySQL, но за удобство на съвети, за да изтеглите MySQL GUI инструменти (dev.mysql.com/downloads/gui-tools). Този пакет включва три програми - MySQL Administrator, MySQL Query Browser и MySQL Миграция Toolkit. Ние се нуждаем от първите две. (Въпреки, че можете да получите един MySQL Query Browser, но всички тези $$ в съхранени процедури понякога могат да бъдат объркващи).

Първата съхранена процедура

Така че, отворен MySQL от администратор, се свържете със сървъра MySQL и създаване на нова схема (база данни), щракнете с Каталога, изберете Create New схема в схеми (Ctrl + N). Наречете го по някакъв начин (например db). Отваряне на новосъздадената схема, изберете раздела Съхранени процедури и след това върху създават съхранявани Proc. Обадете се на процедура процедура1. Тялото на процедурата (между започват и свършват) се регистрират, както следва:

И кликнете Изпълнение на SQL - ред, установен. Отворете MySQL Query Browser, изберете вашата схема (db) и въведете следната заявка:

Променливи в MySQL

За да премахнете Каку известна полза от съхранени процедури в MySQL, трябва да се работи с променливи. Тъй като това е извън обхвата на тази статия, аз ще покажа само няколко примера.

прости променливи

Разликата между прости и системни променливи, които променливите системата достъпна от външната страна на съхранена процедура. Това е, за да извлечете всички данни, които трябва да използвате системата, и променливите, които са необходими, само в рамките на процедурата следва да са прости.

Параметрите в съхранени процедури

Тук също всичко е съвсем проста. Промяна на първа линия, с което декларира, самата процедура:

Тук, в ключовата дума показва, че параметърът принадлежи. Освен това, тази опция работи като нормален променлива в рамките на процедурата:

Условия цикли. АКО ТОГАВА Иначе, докато

Условия и цикли определено се нуждаете за писане на сложни съхранени процедури, но и да живеят по този въпрос ще бъде. Мисля, че най-малко някои умения за програмиране, които имате, така че шоуто е само синтаксис.

Един прост пример

Един от най-добрите приложения, съхранени процедури - когато трябва да се съчетаят няколко заявки в едно, като например добавяне на теми във форума и ще увеличи общия брой на теми. Да предположим, че конци маса

Тук титлата, ние ще бъде водещ в новата тема. Е, на масата, например с различни статистически променливи на обекта, включително общия брой на тези в униформа.

Ето, че всичко е ясно, нека да кажем, че имаме налице са данни с име = конци и стойност = 0. Създаване на нова запомнена процедура процедура2.

Обяснете нищо особено, просто двете заявки са обединени в един. Сега можем да наречем тази процедура, както следва:

По този начин, вместо да минава на две или повече заявки (например чрез PHP), можем да изпратим едно - да се оптимизира, чист код и може да бъде променяна по всяко време, без да се засягат други скриптове.

Бърз (MySQL Бърз)

Бърз позволяват да мине през всички получени резултати поискване. На теория е трудно да се обясни, и да се покаже на практика. Добавяне на друга маса до нашата база данни - хитове:

Тук ние ще запише всичко на таговете от всички теми. Съхранената процедура ще изглежда така:

Подробности. Процедурата ще премине през всяка тема, всеки етикет се разпада на тагове на маса, и ако етикетът липсва, тя ще го добавим.

Отваряне на курсора и да получите първия запис. Следваща в цикъла - Избор на броя на мачовете на таговете за масата за ток и поставете резултата в променливата iCount. Ако няма резултати, а след това заявката за INSERT добавя нов маркер.

В крайна сметка, ние приключи процедурите за курсора и излизане. Е, това е всичко.

Извличане на данни

Нека си припомним променливи на системата и да обмислят още една манипулация на нашите маси - да се общият брой на тагове и теми. Се отправи незабавно към процедурата:

Подкрепете проекта - споделете линка, благодаря!