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

@ -135,7 +135,7 @@ SELECT k.kgnr, 2
FROM wb_gem wg FROM wb_gem wg
LEFT JOIN AT_gem g ON g.gkz = wg.gkz LEFT JOIN AT_gem g ON g.gkz = wg.gkz
LEFT JOIN AT_kg k ON k.gkz = g.gkz LEFT JOIN AT_kg k ON k.gkz = g.gkz
WHERE hkid = 'WLWV' AND g.gkz / 100 IN (308, 316) AND k.name IN ('Bockfließ', 'Großengersdorf'); WHERE hkid = 'WLWV' AND g.gkz / 100 IN (308, 316) AND k.name IN ('Bockfließ', 'Großengersdorf', 'Wolkersdorf');
INSERT INTO wb_kg INSERT INTO wb_kg
SELECT k.kgnr, 3 SELECT k.kgnr, 3

View File

@ -140,8 +140,8 @@ CREATE TABLE wine_quality (
origin_level INTEGER NOT NULL, origin_level INTEGER NOT NULL,
name TEXT NOT NULL, name TEXT NOT NULL,
from_kmw INTEGER DEFAULT NULL, from_kmw REAL DEFAULT NULL,
to_kmw INTEGER DEFAULT NULL, to_kmw REAL DEFAULT NULL,
CONSTRAINT pk_wine_quality PRIMARY KEY (qualid) CONSTRAINT pk_wine_quality PRIMARY KEY (qualid)
) STRICT; ) STRICT;
@ -378,8 +378,8 @@ CREATE TABLE modifier (
abs INTEGER, abs INTEGER,
rel INTEGER, rel INTEGER,
standard INTEGER NOT NULL CHECK (standard IN (0, 1)), standard INTEGER NOT NULL CHECK (standard IN (TRUE, FALSE)),
quick_select INTEGER NOT NULL CHECK (quick_select IN (0, 1)), quick_select INTEGER NOT NULL CHECK (quick_select IN (TRUE, FALSE)),
CONSTRAINT pk_modifier PRIMARY KEY (year, mnr), CONSTRAINT pk_modifier PRIMARY KEY (year, mnr),
CONSTRAINT fk_modifier_season FOREIGN KEY (year) REFERENCES season (year) CONSTRAINT fk_modifier_season FOREIGN KEY (year) REFERENCES season (year)
@ -423,25 +423,76 @@ BEGIN
END; END;
CREATE TABLE delivery_part ( CREATE TABLE delivery_part (
year INTEGER NOT NULL, year INTEGER NOT NULL,
did INTEGER NOT NULL, did INTEGER NOT NULL,
dpnr INTEGER NOT NULL, dpnr INTEGER NOT NULL,
weight INTEGER NOT NULL, sortid TEXT NOT NULL,
c_kmw INTEGER NOT NULL, attrid TEXT DEFAULT NULL,
gerebelt INTEGER NOT NULL, weight INTEGER NOT NULL,
handwiegung INTEGER NOT NULL, kmw REAL NOT NULL,
spätleseüberprüfung INTEGER 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 pk_delivery_part PRIMARY KEY (year, did, dpnr),
CONSTRAINT fk_delivery_part_delivery FOREIGN KEY (year, did) REFERENCES delivery (year, did) CONSTRAINT fk_delivery_part_delivery FOREIGN KEY (year, did) REFERENCES delivery (year, did)
ON UPDATE CASCADE 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; ) 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 ( CREATE TABLE delivery_part_modifier (
year INTEGER NOT NULL, year INTEGER NOT NULL,
did INTEGER NOT NULL, did INTEGER NOT NULL,

View File

@ -31,10 +31,10 @@ INSERT INTO AT_bundesland VALUES
INSERT INTO wine_quality VALUES INSERT INTO wine_quality VALUES
('WEI', 0, 'Wein', NULL, NULL), ('WEI', 0, 'Wein', NULL, NULL),
('RSW', 0, 'Rebsortenwein', 115, 140), ('RSW', 0, 'Rebsortenwein', 11.5, 14.0),
('LDW', 1, 'Landwein', 140, 150), ('LDW', 1, 'Landwein', 14.0, 15.0),
('QUW', 3, 'Qualitätswein', 150, 170), ('QUW', 3, 'Qualitätswein', 15.0, 17.0),
('KAB', 3, 'Kabinett', 170, NULL), ('KAB', 3, 'Kabinett', 17.0, NULL),
('SPL', 3, 'Spätlese', NULL, NULL); ('SPL', 3, 'Spätlese', NULL, NULL);
--INSERT INTO wine_quality (qualid, name) --INSERT INTO wine_quality (qualid, name)