WG TBLCALDAY
Материал из GedeminWiki
RECREATE TABLE wg_tblcalday ( id dintkey, tblcalkey dintkey, theday ddate_notnull, workday dboolean_notnull DEFAULT 1, wstart1 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wend1 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wstart2 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wend2 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wstart3 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wend3 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wstart4 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', wend4 dtimestamp_notnull DEFAULT '1900-01-01 00:00:00', editiondate deditiondate, WDURATION COMPUTED BY (G_M_ROUNDNN(((wend1 - wstart1) + (wend2 - wstart2) + (wend3 - wstart3) + (wend4 - wstart4))*24, 0.01)), dow COMPUTED BY (EXTRACT(weekday FROM theday)), CONSTRAINT wg_pk_tblcalday PRIMARY KEY (id), CONSTRAINT wg_fk_tblcalday_tblcal FOREIGN KEY (tblcalkey) REFERENCES wg_tblcal (id) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT wg_unq_tblcalday_1 UNIQUE (tblcalkey, theday), CONSTRAINT wg_chk_tblcalday_1 CHECK (wend1 >= wstart1), CONSTRAINT wg_chk_tblcalday_2 CHECK (wend2 >= wstart2), CONSTRAINT wg_chk_tblcalday_3 CHECK (wend3 >= wstart3), CONSTRAINT wg_chk_tblcalday_4 CHECK (wend4 >= wstart4), CONSTRAINT wg_chk_tblcalday_5 CHECK ((wstart2 = '1900-01-01 00:00:00') OR (wstart2 >= wend1)), CONSTRAINT wg_chk_tblcalday_6 CHECK ((wstart3 = '1900-01-01 00:00:00') OR (wstart3 >= wend2)), CONSTRAINT wg_chk_tblcalday_7 CHECK ((wstart4 = '1900-01-01 00:00:00') OR (wstart4 >= wend3)) );