Mustaqil ish
Download 19.03 Kb.
|
MUSTAQIL ISH Triggerlar - bu ma'lum bir harakat jadvalda yoki ko'rinishda bajarilganda, xususan ma'lumotlar qo'shilganda, o'zgartirilganda yoki o'chirilganda, ya'ni INSERT, UPDATE, DELETE buyruqlarini bajarishda avtomatik ravishda chaqiriladigan saqlanadigan protseduralarning maxsus turi. Rasmiy trigger ta'rifi: TRIGGER trigger_name ON yarating (jadval_nomasi | ko'rish_nomasi) (AFTER | INSTEAD OF) AS sql_expression Tetikni yaratish uchun CREATE TRIGGER so'zi ishlatiladi va undan keyin trigger nomi beriladi. Odatda, trigger nomi operatsiyalar turini va operatsiya bajariladigan jadval nomini aks ettiradi. Har bir trigger ma'lum bir jadval yoki ko'rinish bilan bog'liq bo'lib, ularning nomi ON so'zidan keyin paydo bo'ladi. Keyin trigger turi o'rnatiladi. Ikkita turdan birini ishlatishimiz mumkin: KO'P: harakat tugagandan so'ng bajariladi Faqat jadvallar uchun belgilangan. INSTEAD OF: amal o'rniga amalga oshiriladi (ya'ni amal - qo'shish, o'zgartirish yoki o'chirish - umuman bajarilmaydi). Jadvallar va ko'rishlar uchun belgilangan Trigger turidan keyin trigger aniqlanadigan operatsiya ko'rsatiladi: INSERT, UPDATE yoki DELETE. Trigger uchun, bir vaqtning o'zida UPDATE va INSERT kabi bir nechta amallarga AFTERni qo'llash mumkin. Bunday holda, operatsiyalar vergul bilan ajratiladi. INSTEAD OF trigger uchun faqat bitta amalni aniqlash mumkin. Va shundan keyin AS so'zidan keyin amalda tetik tanasini tashkil etadigan SQL iboralar to'plami keladi. Tetikni yarataylik. Aytaylik, bizda quyidagi ta'rifga ega bo'lgan productdb ma'lumotlar bazasi bor: DATABASE CREATE mahsulotini yarating; FOYDALANISH MAHSULOTI; Jadval mahsulotlarini yarating (Id identifikatsiya printsipi KEY, mahsulot nomi NVARCHAR (30) NULL emas, ishlab chiqaruvchi NVARCHAR (20) NULL emas, ProductCount 0 DEFAULT, narx PUL YO'Q); Ma'lumotlarni qo'shish va yangilashda boshlanadigan tetikni aniqlaymiz: USE mahsulotdb; Mahsulotlarni INSERTdan so'ng, yangilangandan so'ng mahsulotlarni SET narxlari \u003d narx + narx * 0.38 Qaerda id \u003d (SELECT ID FROM kiritilgan) Aytaylik, Mahsulotlar jadvalida mahsulot haqidagi ma'lumotlar saqlanadi. Ammo mahsulotning narxi ko'pincha qo'shimcha to'lovlarni o'z ichiga oladi, masalan, qo'shilgan qiymat solig'i, korruptsiyaga solinadigan soliq va boshqalar. Ma'lumotni qo'shgan odam soliq bazasining barcha sirlarini bilmasligi mumkin va ular aniq narxni aniqlaydilar. Tetik yordamida biz mahsulot narxini ma'lum miqdorda sozlashimiz mumkin. Shunday qilib, tetiklar Mahsulotlar jadvalidagi har qanday INSERT yoki UPDATE operatsiyalariga o't qo'yadi. Triggerning o'zi mahsulot narxini o'zgartiradi va qo'shilgan yoki o'zgartirilgan mahsulotni olish uchun biz ushbu mahsulotni Id tomonidan topamiz. Ammo bunday mahsulotning Id qiymati qanday qiymatga ega bo'lishi kerak? Gap shundaki, siz qo'shganingizda yoki o'zgartirganda ma'lumotlar kiritilgan oraliq jadvalga saqlanadi. U avtomatik ravishda yaratiladi. Va undan biz qo'shilgan / o'zgartirilgan mahsulotlar haqida ma'lumot olishimiz mumkin. Va Mahsulotlar Mahsulotlar jadvaliga mahsulot qo'shgandan so'ng, aslida mahsulot qo'shishda aniqlanganidan biroz yuqori narxga ega bo'ladi: Tetikni olib tashlash Triggerni o'chirish uchun DROP TRIGGER buyrug'idan foydalaning: TOZALASH TRIGGER mahsulotlari_INSERT_UPDATE Tetikni o‘chirib qo‘yish Biz triggerni to'xtatib qo'yishni xohlaymiz, ammo biz uni butunlay olib tashlamoqchi emasmiz. Bunday holda, uni DISABLE TRIGGER buyrug'i yordamida vaqtincha o'chirib qo'yish mumkin: Mahsulotlarni ON-TOZA TAYYORLASH_INSERT_UPDATE Agar trigger kerak bo'lsa, uni ENABLE TRIGGER buyrug'i yordamida yoqishingiz mumkin: TRIGGER mahsulotlarini faollashtirish_INSERT_UPDATE mahsulot
Triggerlardan foydalanish kerak bo'lmaganda DBMS deklarativ vositalaridan (qobiliyat cheklovlari yoki tashqi kalitlar) foydalanib erishilgan imkoniyatlarga ega bo'lgan triggerlarni ishlatishingiz shart emas. riggerlarning asosiy parametrlari Jadval (yoki ko'rinish) nomi Qo'llash vaqti: Hodisadan so'ng (FOR) yoki INSTEAD: INSERT, UPDATE, DELETE (TRUNCATE TABLE yo'q qilinmaydi!) Trigger tanasi! Xuddi shu turdagi triggerlarni ishga tushirish ketma-ketligi o'zboshimchalik bilan amalga oshiriladi Download 19.03 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling