Kuban davlat universiteti


Ketma-ketlik va triggerlarni yaratish



Yüklə 208,12 Kb.
səhifə9/12
tarix16.12.2023
ölçüsü208,12 Kb.
#183467
1   ...   4   5   6   7   8   9   10   11   12
kursovaya 2.ru.uz

Ketma-ketlik va triggerlarni yaratish


Oracle DBMS-da, 12c versiyasiga qadar, avtomatik oshirish variantining analoglari yo'q edi. Buning o'rniga, ketma-ketliklar va triggerlarning kombinatsiyasi ishlatilgan. Keling, ushbu variantni batafsil ko'rib chiqaylik. [5]
Ketma-ketlik - bu foydalanuvchilar tomonidan so'ralganda noyob butun sonni hosil qiluvchi maxsus ma'lumotlar bazasi ob'ekti. Yagonalik bitta generator ichida ta'minlanadi. Biroq, ko'pincha har bir asosiy kalit uchun alohida ketma-ketlik yaratiladi. Buning uchun zarur bo'lgan SQL so'rovini ko'rib chiqamiz:

asset_seq ketma-ketligini yarating


Bu buyruq 1 dan boshlanadigan ko'rsatilgan nomga ega ketma-ketlikni yaratadi va har safar so'ralganda qiymatni bittaga oshiradi. Biroq, asbobga moslashuvchanlikni ta'minlaydigan turli xil parametrlar to'plami mavjud. Ketma-ketlikni boshlash bilan boshlash opsiyasi yordamida ma'lum bir qiymatdan boshlash mumkin va ketma-ketlik qadamini oshirish orqali o'zboshimchalik bilan qilish mumkin. Siz maksimal (maksimal qiymat) va minimal (minimum) qiymatlarni belgilashingiz mumkin. Ketma-ketlikni aylana bo'ylab yopiq qilish usuli mavjud va hokazo.


Endi jadvalga yozishda qiymatlar avtomatik ravishda id_asset maydoniga almashtirilishi kerak. Buning uchun siz trigger yaratishingiz kerak.
Trigger - bu ma'lum harakatlar bajarilganda avtomatik ravishda ishga tushadigan maxsus turdagi saqlangan protsedura. Jadvallar holatida bu Ma'lumotlarni boshqarish tili (DML) buyruqlarini chaqirishda sodir bo'ladi. Triggerlar turli xil bo'ladi:

  • So'rovdan oldin (oldin) bajariladi.

  • So'rovdan keyin bajariladi (KEYIN).

  • So'rov o'rniga bajariladi (O'RNIGA). Bunday holda, belgilangan DML buyruqlari trigger tanasida aniqlangan mantiq bilan almashtiriladi.

  • So'rov triggerlari, standart holat. Ular jadval ma'lumotlarini o'zgartirishdan oldin yoki keyin so'rov uchun bir marta ishga tushadi.

  • Har bir satr uchun triggerlar (har bir qator uchun). Ular har safar qator o'zgarganda bajariladi. Triggerlar o'rniga faqat har bir satr uchun triggerlar bo'lishi mumkin va aniq variantni talab qilmaydi.

Uzatilgan ma'lumotlarga noyob identifikatorni kiritish uchun bizga buyruq oldidan bajariladigan chiziqdagi trigger kerak bo'ladi. Bu erda aktivlar jadvaliga misol:

aktivni kiritish yoki yangilashdan oldin trigger rbiu_asset_trg yarating


har bir qator uchun
boshlanishi
:new.username := user;
:new.lastdate := sysdate;
agar kiritsangiz
:new.createdate := sysdate;
:new.id_asset := asset_seq.nextval;
agar tugaydi;
oxiri;

Ushbu buyruq so'rovga har bir yozuvni kiritish yoki yangilashdan oldin bajariladigan rbiu_asset_trg deb nomlangan triggerni yaratadi. On so'zidan keyin jadval nomi ko'rsatiladi. Boshlanish va tugatish so'zlari o'rtasida PL/SQL da tasvirlangan trigger tanasi joylashgan.


Har qanday operatsiya uchun ushbu protsedura joriy vaqt va joriy seansning foydalanuvchi nomini ma'lumotlarga kiritadi. If inserting konstruksiyasi triggerlar uchun aniqlanadi va faollashtirishni ishga tushirgan hodisa turini aniqlash imkonini beradi.
Blok ichida “:new.id_asset := asset_seq.nextval” buyrug'i mavjud. Nextval usuli ketma-ketlikning qiymatini oshiradi va uni qaytaradi.
Ma'lumotlar bazasining yangi versiyasida asosiy kalitni avtomatik ravishda to'ldirishning ikkita yangi usuli mavjud. Birinchidan, jadval yaratishda kalit sifatida ketma-ketlikning nextval usulini ko'rsatish mumkin bo'ldi. Ikkinchidan, identifikatsiya ustunlari (identifikatsiya ustunlari) paydo bo'ldi. Keling, sintaksisni batafsil ko'rib chiqaylik:

jadval aktivi_turini yaratish (


id_asset_type raqami har doim identifikatsiya sifatida yaratiladi,
...
)

"Identifikatsiya sifatida yaratilgan" kalit so'zlari identifikatsiya ustunini yaratadi. "Har doim" generatorni barcha so'rovlar uchun ishlatish kerakligini ko'rsatadi va maydonda ma'lum bir qiymatni ko'rsatishga urinish xatoga olib keladi (boshqa variantlar: "sukut bo'yicha" va "null"). So'z identifikatoridan keyin siz ketma-ketlikni yaratishdagi kabi variantlarni belgilashingiz mumkin.



    1. Yüklə 208,12 Kb.

      Dostları ilə paylaş:
1   ...   4   5   6   7   8   9   10   11   12




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin