Junior
Ի՞նչ են ռելացիոն տվյալների բազայում տրիգգերները։
sobes.tech AI
Պատասխան AI-ից
Trigger-ը հատուկ տեսակի պահվող գործընթաց է, որը ավտոմատ կերպով կատարվում է տվյալների բազայի աղյուսակում կամ ներկայացումում որոշակի իրադարձության արձագանքում:
Հիմնական իրադարձությունները, որոնք առաջացնում են trigger-ներ.
INSERT: Նոր տող ավելացնելը.UPDATE: Միջնորդական տողի փոփոխությունը.DELETE: Տողի ջնջումը.
Trigger-ները կարող են ակտիվանալ նախքան (BEFORE) կամ հետո (AFTER) իրադարձության կատարման:
Օրինակներ trigger-ների օգտագործման:
- դաշտերի ավտոմատ թարմացում (օրինակ՝ վերջին փոփոխության ամսաթիվ):
- տվյալների ամբողջականության ստուգում:
- փոփոխությունների գրանցում (լոգավորում):
- կապված տվյալների կասկադային թարմացում կամ ջնջում:
-- AFTER INSERT trigger ստեղծելու օրինակ (կեղծ սինտաքսիս)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Trigger-ով կանչվող ֆունկցիայի օրինակ
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Առավելություններ:
- բիզնես տրամաբանության կենտրոնական կառավարում:
- ռոտինային գործառույթների ավտոմատացում:
- տվյալների ամբողջականության բարելավում:
Անբարենպաստ կողմերը:
- սխալների հայտնաբերում դժվար է:
- հնարավոր ազդեցություն կատարողականության վրա:
- հավելվածի տրամաբանության բարդացում, քանի որ դրա մի մասը տեղափոխվում է տվյալների բազայի մակարդակ։