Triger Yaratish:
Triger yaratish uchun CREATE TRIGGER so'zini ishlatamiz. Triger nomi, tadbir (BEFORE, AFTER), tadbirni qanday vaqt amalga oshirish (INSERT, UPDATE, DELETE), jadval nomi, va amalga oshiriladigan tadbirni bajarish uchun SQL so'rovlari kiritiladi. Misol:
CREATE TRIGGER AddedUserTriger
AFTER INSERT ON users
FOR EACH ROW
INSERT INTO messages (user_id, text)
VALUES (NEW.id, 'Yangi foydalanuvchi qo\'shildi');
Ushbu triger, "users" jadvalida yangi foydalanuvchi qo'shilganda "messages" jadvaliga xabar qo'shadi.
Trigerlar, ma'lumotlar bazasidagi boshqa tadbirlar bajarilganda avtomatik ravishda ishga tushadigan qisqa protseduralardir. Bu tadbirlar boshqa amallar bo'yicha to'g'ridan to'g'ri ishga tushadi, va ularni ma'lumotlar bazasi har bir qatorida, jadvallar o'zgarib turganda, yoki boshqa ma'lumot o'zgarishlaridan keyin ishlatish mumkin. Quyidagi qismlarda trigerlarga ko'proq ma'lumot beraman:
Triger Yaratish:
Triger yaratish uchun CREATE TRIGGER so'zini ishlatamiz. Triger nomi, tadbir (BEFORE, AFTER), tadbirni qanday vaqt amalga oshirish (INSERT, UPDATE, DELETE), jadval nomi, va amalga oshiriladigan tadbirni bajarish uchun SQL so'rovlari kiritiladi. Misol:
sqlCopy code
CREATE TRIGGER FoydalanuvchiQo'shilgandaTriger AFTER INSERT ON foydalanuvchilar FOR EACH ROW INSERT INTO xabarlar (foydalanuvchi_id, matn) VALUES (NEW.id, 'Yangi foydalanuvchi qo\'shildi');
Triggerlar Yaratilishi xar bir Userlar uchun !!!!
-- Trigger for adding a new user
CREATE TRIGGER AddUser
ON Employee
AFTER INSERT
AS
BEGIN
-- Biz bu yerda boshqa shartlar berishingiz mumkin
-- Yangi ma'lumotlarga INSERTED.column_name orqali kirishingiz mumkin
-- Masalan, siz yangi foydalanuvchi qo'shilganligini qayd qilishni xohlashingiz mumkin INSERT INTO UserLog (log_message)
SELECT 'New user added: ' + name
FROM INSERTED;
END;
-- Trigger for deleting a user
CREATE TRIGGER DeleteUser
ON Employee
AFTER DELETE
AS
BEGIN
-- -- Biz bu yerda boshqa shartlar berishingiz mumkin
-- biz ochirishimiz uchun shart yozamiz DELETED.column_name
-- Masalan, siz yangi foydalanuvchi ochiriganligini qayd qilishni xohlashingiz mumkin
INSERT INTO UserLog (log_message)
SELECT 'User deleted: ' + name
FROM DELETED;
END;
-- Trigger for updating a user
CREATE TRIGGER UpdateUser
ON Employee
AFTER UPDATE
AS
BEGIN
-- SHart ga kora kod yozishingiz mumkin
INSERTED.column_name
-- For example, you might want to log the update of a user
INSERT INTO UserLog (log_message)
SELECT 'User updated: ' + name + ' -> ' + INSERTED.name
FROM INSERTED
INNER JOIN DELETED ON INSERTED.employee_id = DELETED.employee_id;
END;
Dostları ilə paylaş: |