Changes between Version 3 and Version 4 of dbdevelopment


Ignore:
Timestamp:
01/31/26 13:19:03 (29 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • dbdevelopment

    v3 v4  
    117117
    118118==== Тригери ====
     119
     120BEFORE INSERT тригер во course_version, каде само таа верзија што се креира е active, останатите не се. Дополнително се ажурираат и уште некои атрибути.
     121{{{
     122CREATE OR REPLACE FUNCTION ensure_single_active_version_when_created()
     123RETURNS TRIGGER
     124AS $$
     125DECLARE
     126    v_num_new_version INTEGER;
     127BEGIN
     128    UPDATE course_version
     129    SET active = FALSE
     130    WHERE course_id = NEW.course_id;
     131
     132    SELECT COALESCE(MAX(version_number), 0) + 1 INTO v_num_new_version
     133    FROM course_version
     134    WHERE course_id = NEW.course_id;
     135
     136    NEW.active := TRUE;
     137    NEW.creation_date := CURRENT_DATE;
     138    NEW.version_number := v_num_new_version;
     139   
     140    RETURN NEW;
     141END;
     142$$
     143LANGUAGE plpgsql;
     144
     145CREATE TRIGGER trg_ensure_single_active_version_when_created
     146BEFORE INSERT ON course_version
     147FOR EACH ROW
     148EXECUTE FUNCTION ensure_single_active_version_when_created();
     149}}}
    119150
    120151BEFORE UPDATE тригер за атрибутот active во course_version, со цел осигурување дека постои само една активна верзија од курсот.