Mysql tárolt eljárások

Hosszú gyötri az üggyel. Irodalom az interneten egy kicsit, főleg az orosz. Meg kellett kérni körül külföldi fórumokon, mélyebb ásni kézikönyvek és tisztázni magunknak valami furcsa pillanatokat. Tehát röviden a tárolt eljárások MySQL.

A tárolt eljárások - mi ez?

A tárolt eljárások jelentek meg, mivel 5 verzió MySQL. Ezek lehetővé teszik, hogy automatizálják a bonyolult folyamatok szintjén MySQL használata helyett külső scripteket erre. Ez ad nekünk a legnagyobb sebesség a végrehajtás, mint mi nem hajt a kérelmek nagy száma miatt, de csak egyszer hívja egy adott eljárás (vagy a funkció).

Mit kell? Telepítse a MySQL szerver verzió 5-ös vagy magasabb (dev.mysql.com/downloads). Eljárások hozhat létre lekérdezést, mint például a parancssor MySQL, de a kényelem tanácsot letölthető MySQL GUI Tools (dev.mysql.com/downloads/gui-tools). Ez a csomag tartalmazza a három program - MySQL Administrator, MySQL Query Browser és a MySQL Migration Toolkit. Szükségünk van az első kettő. (Bár lehet, hogy egy MySQL Query Browser, hanem mindazokat $$ tárolt eljárások néha zavaró).

Az első tárolt eljárás

Tehát nyitott MySQL Administrator, a MySQL szerver és hozzon létre egy új séma (adatbázis), kattintson a katalógusok, válassza a Create New séma a sémák (Ctrl + N). Nevezzük valahogy (pl db). Nyisd az újonnan létrehozott rendszert, válassza tárolt eljárások fülre, majd a Create tárolt Proc. Hívja eljárás eljárás1. A test az eljárás (közötti BEGIN és az END) regisztrálja a következőképpen:

És kattintson Execute SQL - megállapított eljárás. Nyisd MySQL Query Browser, válassza ki a rendszert (db) és adja meg a következő lekérdezést:

Változókat a MySQL

Ahhoz, hogy távolítsa el kaku néhány előnyös tárolt eljárások MySQL, meg kell dolgozni változók. Mivel ez túlmutat a jelen cikk, megmutatom, csak néhány példát említsünk.

egyszerű változók

A különbség az egyszerű és a rendszer változókat, hogy a rendszer változók kívülről hozzáférhető a tárolt eljárás. Azaz, a kivonat minden adatot akkor kell használni a rendszert, és a változók, amelyek szükségesek csak az eljáráson belül legyen egyszerű.

Paraméterek tárolt eljárások

Itt is minden nagyon egyszerű. Változás az első sorban, amely kijelenti maga az eljárás:

Itt a kulcsszó jelzi, hogy a paraméter meg van adva, mint a csak olvasható. Továbbá, ez a lehetőség működik, mint egy normál változó eljáráson belül:

Feltételek Cycles. IF THEN ELSE, MÍG

Feltételek és ciklusok akkor feltétlenül szükség van az írás komplex tárolt eljárásokat, de laknak ebben a témában lesz. Azt hiszem, legalább néhány programozási ismeretek van, úgy, hogy a műsor csak szintaxis.

Egy egyszerű példa

Az egyik a jó alkalmazások tárolt eljárások - ha kell kombinálni több lekérdezés egyetlen adni, például szálak a fórumon, és növeli az összes témát. Tegyük szálak táblázatban

Itt a cím, akkor főcím az új témát. Nos, az asztalra, például a különböző statisztikai változók a helyén, beleértve az összes említett egységes.

Itt, mint minden világos, mondjuk mi van egy rekord a name = szálak és value = 0. Hozzon létre egy új tárolt eljárást eljárás keretében2.

Magyarázza semmi különös, csak a két lekérdezés egyesülnek. Most tudjuk hívni ezt az eljárást az alábbiak szerint:

Így ahelyett, hogy két, vagy több kérelmet (pl egy php), akkor küldünk egy - optimalizálni, tiszta kódot, és meg lehet változtatni bármikor anélkül, hogy a többi szkript.

Kurzorok (MySQL kurzorok)

Kurzorok teszi, hogy menjen át a kapott eredmények kérelmet. Az elmélet nehéz megmagyarázni, és azt mutatják, a gyakorlatban. Újabb táblázat adatbázisunkban - megtekintve:

Itt fogjuk rögzíteni az összes címkét az összes téma. A tárolt eljárás fog kinézni:

Részletességgel. Az eljárás megy keresztül minden témában, minden tag megtöri a címkék asztalra, és ha a címke hiányzik, akkor adja hozzá.

Nyissa meg a kurzort, és kap az első rekordot. Következő a ciklusban - kiválasztása a találatok száma a címkék az aktuális címke asztalra, és helyezze az eredmény változó iCount. Ha nincs találat, akkor az INSERT lekérdezést beilleszt egy új tag.

A végén, akkor lezárja a kurzort és kilépési eljárásokat. Nos, ez minden.

adatvisszaszerzés

Emlékezzünk rá, a változó és tekintsünk egy másik manipuláció az asztalunkra -, hogy az összes tag és témák. Azonnal folytatni kell az eljárást:

Kijelentjük két változót - iTags - címkék számát, és iThreads - az összes témát.

Következő két egyszerű SELECT lekérdezés, töltő a változókat. Így a végén ők értéket rendelnek egy változóhoz aktuális egyszerű változók. Ha telefonál ez az eljárás nem ad vissza semmit, de miután egy hívást, akkor feltételezhetjük a kívánt értékeket rendszerváltozókkal:

Kapcsolódó cikkek