Update sql

This commit is contained in:
2023-02-15 17:58:43 +01:00
parent 34cb7666ae
commit 9ae3163c42
3 changed files with 70 additions and 19 deletions

View File

@ -140,8 +140,8 @@ CREATE TABLE wine_quality (
origin_level INTEGER NOT NULL,
name TEXT NOT NULL,
from_kmw INTEGER DEFAULT NULL,
to_kmw INTEGER DEFAULT NULL,
from_kmw REAL DEFAULT NULL,
to_kmw REAL DEFAULT NULL,
CONSTRAINT pk_wine_quality PRIMARY KEY (qualid)
) STRICT;
@ -378,8 +378,8 @@ CREATE TABLE modifier (
abs INTEGER,
rel INTEGER,
standard INTEGER NOT NULL CHECK (standard IN (0, 1)),
quick_select INTEGER NOT NULL CHECK (quick_select IN (0, 1)),
standard INTEGER NOT NULL CHECK (standard IN (TRUE, FALSE)),
quick_select INTEGER NOT NULL CHECK (quick_select IN (TRUE, FALSE)),
CONSTRAINT pk_modifier PRIMARY KEY (year, mnr),
CONSTRAINT fk_modifier_season FOREIGN KEY (year) REFERENCES season (year)
@ -423,25 +423,76 @@ BEGIN
END;
CREATE TABLE delivery_part (
year INTEGER NOT NULL,
did INTEGER NOT NULL,
dpnr INTEGER NOT NULL,
year INTEGER NOT NULL,
did INTEGER NOT NULL,
dpnr INTEGER NOT NULL,
weight INTEGER NOT NULL,
c_kmw INTEGER NOT NULL,
sortid TEXT NOT NULL,
attrid TEXT DEFAULT NULL,
gerebelt INTEGER NOT NULL,
handwiegung INTEGER NOT NULL,
spätleseüberprüfung INTEGER NOT NULL,
weight INTEGER NOT NULL,
kmw REAL NOT NULL,
comment TEXT DEFAULT NULL,
hkid TEXT NOT NULL,
kgnr INTEGER DEFAULT NULL,
rdnr INTEGER DEFAULT NULL,
gerebelt INTEGER NOT NULL CHECK (gerebelt IN (TRUE, FALSE)),
handwiegung INTEGER NOT NULL CHECK (handwiegung IN (TRUE, FALSE)),
spätleseüberprüfung INTEGER NOT NULL CHECK (spätleseüberprüfung IN (TRUE, FALSE)) DEFAULT FALSE,
temperature REAL DEFAULT NULL,
acid REAL DEFAULT NULL,
comment TEXT DEFAULT NULL,
waagentext TEXT,
CONSTRAINT pk_delivery_part PRIMARY KEY (year, did, dpnr),
CONSTRAINT fk_delivery_part_delivery FOREIGN KEY (year, did) REFERENCES delivery (year, did)
ON UPDATE CASCADE
ON DELETE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_delivery_part_wine_variety FOREIGN KEY (sortid) REFERENCES wine_variety (sortid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wine_attribute FOREIGN KEY (attrid) REFERENCES wine_attribute (attrid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wine_origin FOREIGN KEY (hkid) REFERENCES wine_origin (hkid)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wb_kg FOREIGN KEY (kgnr) REFERENCES wb_kg (kgnr)
ON UPDATE CASCADE
ON DELETE RESTRICT,
CONSTRAINT fk_delivery_part_wb_rd FOREIGN KEY (kgnr, rdnr) REFERENCES wb_rd (kgnr, rdnr)
ON UPDATE CASCADE
ON DELETE RESTRICT
) STRICT;
CREATE TRIGGER t_delivery_part_i
AFTER INSERT ON delivery_part FOR EACH ROW
WHEN NEW.kgnr IS NOT NULL
BEGIN
UPDATE delivery_part SET hkid = (
SELECT hkid
FROM wb_kg wk
JOIN AT_kg k ON wk.kgnr = k.kgnr
JOIN wb_gem wg ON wg.gkz = k.gkz
WHERE wk.kgnr = NEW.kgnr
) WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END;
CREATE TRIGGER t_delivery_part_u
AFTER UPDATE OF kgnr ON delivery_part FOR EACH ROW
WHEN NEW.kgnr IS NOT NULL
BEGIN
UPDATE delivery_part SET hkid = (
SELECT hkid
FROM wb_kg wk
JOIN AT_kg k ON wk.kgnr = k.kgnr
JOIN wb_gem wg ON wg.gkz = k.gkz
WHERE wk.kgnr = NEW.kgnr
) WHERE (year, did, dpnr) = (NEW.year, NEW.did, NEW.dpnr);
END;
CREATE TABLE delivery_part_modifier (
year INTEGER NOT NULL,
did INTEGER NOT NULL,