database: Add area_commitment_contract
This commit is contained in:
@@ -174,28 +174,49 @@ CREATE TABLE member_email_address (
|
|||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE area_commitment (
|
CREATE TABLE area_commitment_contract (
|
||||||
fbnr INTEGER NOT NULL,
|
fbnr INTEGER NOT NULL,
|
||||||
mgnr INTEGER NOT NULL,
|
|
||||||
|
|
||||||
vtrgid TEXT NOT NULL,
|
|
||||||
cultid TEXT DEFAULT NULL,
|
|
||||||
area INTEGER NOT NULL,
|
|
||||||
|
|
||||||
kgnr INTEGER NOT NULL,
|
kgnr INTEGER NOT NULL,
|
||||||
gstnr TEXT NOT NULL,
|
|
||||||
rdnr INTEGER,
|
rdnr INTEGER,
|
||||||
|
|
||||||
year_from INTEGER CHECK (year_from >= 1000 AND year_from <= 9999) DEFAULT NULL,
|
|
||||||
year_to INTEGER CHECK (year_to >= 1000 AND year_to <= 9999) DEFAULT NULL,
|
|
||||||
|
|
||||||
comment TEXT DEFAULT NULL,
|
comment TEXT DEFAULT NULL,
|
||||||
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||||
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||||
xtime INTEGER DEFAULT NULL,
|
xtime INTEGER DEFAULT NULL,
|
||||||
itime INTEGER DEFAULT NULL,
|
itime INTEGER DEFAULT NULL,
|
||||||
|
|
||||||
CONSTRAINT pk_area_commitment PRIMARY KEY (fbnr),
|
CONSTRAINT area_commitment_contract PRIMARY KEY (fbnr),
|
||||||
|
CONSTRAINT fk_area_commitment_contract_wb_kg FOREIGN KEY (kgnr) REFERENCES wb_kg (kgnr)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT,
|
||||||
|
CONSTRAINT fk_area_commitment_contract_wb_rd FOREIGN KEY (kgnr, rdnr) REFERENCES wb_rd (kgnr, rdnr)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT
|
||||||
|
) STRICT;
|
||||||
|
|
||||||
|
CREATE TABLE area_commitment (
|
||||||
|
fbnr INTEGER NOT NULL,
|
||||||
|
revnr INTEGER NOT NULL,
|
||||||
|
mgnr INTEGER NOT NULL,
|
||||||
|
|
||||||
|
vtrgid TEXT NOT NULL,
|
||||||
|
cultid TEXT DEFAULT NULL,
|
||||||
|
area INTEGER NOT NULL,
|
||||||
|
gstnr TEXT NOT NULL,
|
||||||
|
|
||||||
|
year_from INTEGER CHECK (year_from >= 1000 AND year_from <= 9999) DEFAULT NULL,
|
||||||
|
year_to INTEGER CHECK (year_to >= 1000 AND year_to <= 9999) DEFAULT NULL,
|
||||||
|
|
||||||
|
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||||
|
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||||
|
xtime INTEGER DEFAULT NULL,
|
||||||
|
itime INTEGER DEFAULT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT pk_area_commitment PRIMARY KEY (fbnr, revnr),
|
||||||
|
CONSTRAINT fk_area_commitment_area_commitment_contract FOREIGN KEY (fbnr) REFERENCES area_commitment_contract (fbnr)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE,
|
||||||
CONSTRAINT fk_area_commitment_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
CONSTRAINT fk_area_commitment_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT,
|
ON DELETE RESTRICT,
|
||||||
@@ -203,12 +224,6 @@ CREATE TABLE area_commitment (
|
|||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT,
|
ON DELETE RESTRICT,
|
||||||
CONSTRAINT fk_area_commitment_wine_cultivation FOREIGN KEY (cultid) REFERENCES wine_cultivation (cultid)
|
CONSTRAINT fk_area_commitment_wine_cultivation FOREIGN KEY (cultid) REFERENCES wine_cultivation (cultid)
|
||||||
ON UPDATE CASCADE
|
|
||||||
ON DELETE RESTRICT,
|
|
||||||
CONSTRAINT fk_area_commitment_wb_kg FOREIGN KEY (kgnr) REFERENCES wb_kg (kgnr)
|
|
||||||
ON UPDATE CASCADE
|
|
||||||
ON DELETE RESTRICT,
|
|
||||||
CONSTRAINT fk_area_commitment_wb_rd FOREIGN KEY (kgnr, rdnr) REFERENCES wb_rd (kgnr, rdnr)
|
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|||||||
@@ -79,11 +79,41 @@ END;
|
|||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_contract_i_ctime
|
||||||
|
AFTER INSERT ON area_commitment_contract FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET ctime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_contract_u_ctime
|
||||||
|
BEFORE UPDATE ON area_commitment_contract FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND OLD.ctime != NEW.ctime
|
||||||
|
BEGIN
|
||||||
|
SELECT RAISE(ABORT, 'It is not allowed to change ctime');
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_contract_i_mtime
|
||||||
|
AFTER INSERT ON area_commitment_contract FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_contract_u_mtime
|
||||||
|
AFTER UPDATE ON area_commitment_contract FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
CREATE TRIGGER t_area_commitment_i_ctime
|
CREATE TRIGGER t_area_commitment_i_ctime
|
||||||
AFTER INSERT ON area_commitment FOR EACH ROW
|
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||||
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.ctime != UNIXEPOCH()
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE area_commitment SET ctime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
UPDATE area_commitment SET ctime = UNIXEPOCH() WHERE (fbnr, revnr) = (NEW.fbnr, NEW.revnr);
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER t_area_commitment_u_ctime
|
CREATE TRIGGER t_area_commitment_u_ctime
|
||||||
@@ -97,14 +127,56 @@ CREATE TRIGGER t_area_commitment_i_mtime
|
|||||||
AFTER INSERT ON area_commitment FOR EACH ROW
|
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||||
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE (fbnr, revnr) = (NEW.fbnr, NEW.revnr);
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CREATE TRIGGER t_area_commitment_u_mtime
|
CREATE TRIGGER t_area_commitment_u_mtime
|
||||||
AFTER UPDATE ON area_commitment FOR EACH ROW
|
AFTER UPDATE ON area_commitment FOR EACH ROW
|
||||||
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1 AND NEW.mtime != UNIXEPOCH()
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE (fbnr, revnr) = (NEW.fbnr, NEW.revnr);
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_i_mtime_contract
|
||||||
|
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_u_mtime_contract
|
||||||
|
AFTER UPDATE ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr OR fbnr = OLD.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_d_mtime_contract
|
||||||
|
AFTER DELETE ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE area_commitment_contract SET mtime = UNIXEPOCH() WHERE fbnr = OLD.fbnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_i_mtime_member
|
||||||
|
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_u_mtime_member
|
||||||
|
AFTER UPDATE ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = NEW.mgnr OR mgnr = OLD.mgnr;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_area_commitment_d_mtime_member
|
||||||
|
AFTER DELETE ON area_commitment FOR EACH ROW
|
||||||
|
WHEN (SELECT value FROM client_parameter WHERE param = 'ENABLE_TIME_TRIGGERS') = 1
|
||||||
|
BEGIN
|
||||||
|
UPDATE member SET mtime = UNIXEPOCH() WHERE mgnr = OLD.mgnr;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
-- This value MUST NOT be changed while other connections are open!
|
-- This value MUST NOT be changed while other connections are open!
|
||||||
PRAGMA schema_version = 3600;
|
PRAGMA schema_version = 3800;
|
||||||
|
|||||||
Reference in New Issue
Block a user