Remove contract table
This commit is contained in:
@ -347,11 +347,18 @@ CREATE TABLE member_billing_address (
|
||||
ON DELETE RESTRICT
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE contract (
|
||||
vnr INTEGER NOT NULL,
|
||||
CREATE TABLE area_commitment (
|
||||
fbnr INTEGER NOT NULL,
|
||||
mgnr INTEGER NOT NULL,
|
||||
|
||||
date TEXT CHECK (date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT CURRENT_DATE,
|
||||
sortid TEXT NOT NULL,
|
||||
cultid TEXT NOT NULL,
|
||||
area INTEGER NOT NULL,
|
||||
|
||||
kgnr INTEGER NOT NULL,
|
||||
gstnr TEXT NOT NULL,
|
||||
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,
|
||||
|
||||
@ -359,43 +366,16 @@ CREATE TABLE contract (
|
||||
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||
mtime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||
|
||||
CONSTRAINT pk_contract PRIMARY KEY (vnr),
|
||||
CONSTRAINT fk_contract_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
||||
CONSTRAINT pk_are_commitment PRIMARY KEY (fbnr),
|
||||
CONSTRAINT fk_are_commitment_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE area_commitment (
|
||||
vnr INTEGER NOT NULL,
|
||||
sortid TEXT NOT NULL,
|
||||
cultid TEXT NOT NULL,
|
||||
|
||||
area INTEGER NOT NULL,
|
||||
|
||||
CONSTRAINT pk_area_commitment PRIMARY KEY (vnr),
|
||||
CONSTRAINT fk_area_commitment_contract FOREIGN KEY (vnr) REFERENCES contract (vnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_area_commitment_wine_variety FOREIGN KEY (sortid) REFERENCES wine_variety (sortid)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_area_commitment_wine_cultivation FOREIGN KEY (cultid) REFERENCES wine_cultivation (cultid)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE area_commitment_parcel (
|
||||
vnr INTEGER NOT NULL,
|
||||
kgnr INTEGER NOT NULL,
|
||||
gstnr TEXT NOT NULL CHECK (gstnr REGEXP '^\.?[1-9][0-9]*(/[1-9][0-9]*)*$'),
|
||||
|
||||
rdnr INTEGER,
|
||||
area INTEGER,
|
||||
|
||||
CONSTRAINT pk_area_commitment_parcel PRIMARY KEY (vnr, kgnr, gstnr),
|
||||
CONSTRAINT fk_area_commitment_parcel_area_commitment FOREIGN KEY (vnr) REFERENCES area_commitment (vnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_area_commitment_wb_kg FOREIGN KEY (kgnr) REFERENCES wb_kg (kgnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT,
|
||||
@ -405,11 +385,11 @@ CREATE TABLE area_commitment_parcel (
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE area_commitment_attribute (
|
||||
vnr INTEGER NOT NULL,
|
||||
fbnr INTEGER NOT NULL,
|
||||
attrid TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT pk_area_commitment_attribute PRIMARY KEY (vnr, attrid),
|
||||
CONSTRAINT fk_area_commitment_attribute_area_commitment FOREIGN KEY (vnr) REFERENCES area_commitment (vnr)
|
||||
CONSTRAINT pk_area_commitment_attribute PRIMARY KEY (fbnr, attrid),
|
||||
CONSTRAINT fk_area_commitment_attribute_area_commitment FOREIGN KEY (fbnr) REFERENCES area_commitment (fbnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT fk_area_commitment_attribute_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
|
||||
|
@ -49,92 +49,52 @@ END;
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
CREATE TRIGGER t_contract_i_ctime
|
||||
AFTER INSERT ON contract FOR EACH ROW
|
||||
CREATE TRIGGER t_area_commitment_i_ctime
|
||||
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||
WHEN NEW.ctime != UNIXEPOCH()
|
||||
BEGIN
|
||||
UPDATE contract SET ctime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
UPDATE area_commitment SET ctime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_contract_u_ctime
|
||||
BEFORE UPDATE ON contract FOR EACH ROW
|
||||
CREATE TRIGGER t_area_commitment_u_ctime
|
||||
BEFORE UPDATE ON area_commitment FOR EACH ROW
|
||||
WHEN OLD.ctime != NEW.ctime
|
||||
BEGIN
|
||||
SELECT RAISE(ABORT, 'It is not allowed to change ctime');
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_contract_i_mtime
|
||||
AFTER INSERT ON contract FOR EACH ROW
|
||||
WHEN NEW.mtime != UNIXEPOCH()
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_contract_u_mtime
|
||||
AFTER UPDATE ON contract FOR EACH ROW
|
||||
WHEN NEW.mtime != UNIXEPOCH()
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
END;
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
CREATE TRIGGER t_area_commitment_i_mtime_contract
|
||||
CREATE TRIGGER t_area_commitment_i_mtime
|
||||
AFTER INSERT ON area_commitment FOR EACH ROW
|
||||
WHEN NEW.mtime != UNIXEPOCH()
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_u_mtime_contract
|
||||
CREATE TRIGGER t_area_commitment_u_mtime
|
||||
AFTER UPDATE ON area_commitment FOR EACH ROW
|
||||
WHEN NEW.mtime != UNIXEPOCH()
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr OR vnr = NEW.vnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_d_mtime_contract
|
||||
AFTER DELETE ON area_commitment FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr;
|
||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||
END;
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
CREATE TRIGGER t_area_commitment_parcel_i_mtime_contract
|
||||
AFTER INSERT ON area_commitment_parcel FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_parcel_u_mtime_contract
|
||||
AFTER UPDATE ON area_commitment_parcel FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr OR vnr = NEW.vnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_parcel_d_mtime_contract
|
||||
AFTER DELETE ON area_commitment_parcel FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr;
|
||||
END;
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
CREATE TRIGGER t_area_commitment_attribute_i_mtime_contract
|
||||
CREATE TRIGGER t_area_commitment_attribute_i_mtime_area_commitment
|
||||
AFTER INSERT ON area_commitment_attribute FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = NEW.vnr;
|
||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = NEW.fbnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_attribute_u_mtime_contract
|
||||
CREATE TRIGGER t_area_commitment_attribute_u_mtime_area_commitment
|
||||
AFTER UPDATE ON area_commitment_attribute FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr OR vnr = NEW.vnr;
|
||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = OLD.fbnr OR fbnr = NEW.fbnr;
|
||||
END;
|
||||
|
||||
CREATE TRIGGER t_area_commitment_attribute_d_mtime_contract
|
||||
CREATE TRIGGER t_area_commitment_attribute_d_mtime_area_commitment
|
||||
AFTER DELETE ON area_commitment_attribute FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE contract SET mtime = UNIXEPOCH() WHERE vnr = OLD.vnr;
|
||||
UPDATE area_commitment SET mtime = UNIXEPOCH() WHERE fbnr = OLD.fbnr;
|
||||
END;
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user