Sobes.tech
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;

Առավելություններ:

  • բիզնես տրամաբանության կենտրոնական կառավարում:
  • ռոտինային գործառույթների ավտոմատացում:
  • տվյալների ամբողջականության բարելավում:

Անբարենպաստ կողմերը:

  • սխալների հայտնաբերում դժվար է:
  • հնարավոր ազդեցություն կատարողականության վրա:
  • հավելվածի տրամաբանության բարդացում, քանի որ դրա մի մասը տեղափոխվում է տվյալների բազայի մակարդակ։