Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL,
Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0,
Price MONEY NOT NULL
);
Ushbu jadvaldan ma'lumotlarni olish uchun saqlanadigan protsedurani yaratish:
USE productsdb; GO
CREATE PROCEDURE ProductSummary AS
SELECT ProductName AS Product, Manufacturer, Price FROM Products
CREATE PROCEDURE buyrug'i alohida paketda chaqirilishi kerakligi sababli, joriy ma'lumotlar bazasini o‘rnatadigan USE buyrug'idan keyin yangi paketni aniqlash uchun GO buyrug'i ishlatiladi. Protsedura nomini AS kalit so‘zidan keyin olish kerak.
Jarayonning asosiy qismini skriptning qolgan qismidan ajratish uchun protsedura kodi ko‘pincha BEGIN ... END blokiga joylashtiriladi:
USE productsdb; GO
CREATE PROCEDURE ProductSummary AS BEGIN
SELECT ProductName AS Product, Manufacturer, Price FROM Products
END;
"Ilovalar tobora murakkablashayotganiga qaramay, ularni boshqarish va ishlab chiqish jarayonining qulayligini oshirish uchun biz ilovalar darajasini mavhumlashtira olamiz.
Bilmaydiganlar uchun trigger - siz jadvalga kiritgan qoidadir va DELETE, UPDATE yoki INSERT-ni bajarishda qo‘shimcha harakatlar amalga oshiriladi. Masalan, biz o‘zgartirishlar jurnalini yozib olamiz. Ammo ikkita alohida so‘rovni (bitta ma'lumotni o‘zgartirish uchun, ikkinchisi jurnalga yozish uchun) yozishning o‘rniga, siz qoidani o‘z ichiga olgan triggerni yozishingiz mumkin: "Qachonki satr o‘zgartirilsa, boshqa jadvalda yangi satr yarating. o‘zgarishlar » Ushbu yondashuv asosiy so‘rovda biroz ko‘proqlikni keltirib chiqaradi, ammo hozirda ikkita turli xil amallarni bajarish uchun ikkita turli xil paketlarni ma'lumotlar bazangiz serveriga o‘tkazib bo‘lmaydi, bu umuman ishlashni yaxshilaydi.
Triggerlar MySQL-da 5.0.2 versiyasidan beri joriy qilingan. Trigger sintaksisi biroz begona. MySQL protseduralar va boshqa funktsiyalar uchun ANSI SQL: 2003 standartidan foydalanadi. Agar siz dasturlash tillari bilan ishlasangiz, uni tushunish qiyin bo‘lmaydi. Spetsifikatsiya bepul mavjud emas, shuning uchun biz oddiy tuzilmalardan foydalanishga va triggerda nima bo‘lishini tushuntirishga harakat qilamiz. Xuddi shu tuzilmalar har qanday dasturlash tilidagi kabi qo‘llaniladi.
Yuqorida aytib o‘tilganidek, triggerlar UPDATE, DELETE va INSERT tadbirlari uchun protseduralar sifatida bajariladi. Ular voqea aniqlangandan oldin yoki keyin bajarilishi mumkin. Shu bilan siz DELETE yoki DELETE-dan keyin bajarilishi kerak bo‘lgan triggerni aniqlay olasiz va hokazo. Bu shuni anglatadiki, sizda INSERT-dan oldin bajariladigan bitta trigger va juda kuchli vosita bo‘lgan INSERT-dan keyin bajariladigan mutlaqo boshqa trigger bo‘lishi mumkin.
POSITION funktsiyasi satr ichida pastki qatorni qidiradi, birinchi belgi o‘rnini qaytaradi.