Update sql
This commit is contained in:
@ -22,7 +22,7 @@ INSERT INTO AT_bundesland VALUES
|
|||||||
(8, 'V', 'Vbg.', 'Vorarlberg'),
|
(8, 'V', 'Vbg.', 'Vorarlberg'),
|
||||||
(9, 'W', NULL, 'Wien');
|
(9, 'W', NULL, 'Wien');
|
||||||
|
|
||||||
INSERT INTO origin VALUES
|
INSERT INTO wine_origin VALUES
|
||||||
('AUSL', NULL , 'Ausland', NULL),
|
('AUSL', NULL , 'Ausland', NULL),
|
||||||
('EUXX', NULL , 'Verschnitt von mehreren Weinen der EU', NULL),
|
('EUXX', NULL , 'Verschnitt von mehreren Weinen der EU', NULL),
|
||||||
('OEST', NULL , 'Österreich', NULL),
|
('OEST', NULL , 'Österreich', NULL),
|
||||||
@ -55,6 +55,9 @@ INSERT INTO origin VALUES
|
|||||||
('WLMB', 'WLBL', 'Mittelburgenland', NULL),
|
('WLMB', 'WLBL', 'Mittelburgenland', NULL),
|
||||||
('WLEB', 'WLBL', 'Eisenberg', NULL);
|
('WLEB', 'WLBL', 'Eisenberg', NULL);
|
||||||
|
|
||||||
|
INSERT INTO wbgl
|
||||||
|
(1, 'WLWV', 'Matzner Hügel');
|
||||||
|
|
||||||
INSERT INTO wine_variety VALUES
|
INSERT INTO wine_variety VALUES
|
||||||
('BL', 'R', 'Blauburger', NULL),
|
('BL', 'R', 'Blauburger', NULL),
|
||||||
('BB', 'R', 'Blauer Burgunder', 'Blauer Spätburgunder, Blauburgunder, Pinot Noir'),
|
('BB', 'R', 'Blauer Burgunder', 'Blauer Spätburgunder, Blauburgunder, Pinot Noir'),
|
||||||
|
116
sql/create.sql
116
sql/create.sql
@ -25,6 +25,30 @@ CREATE TABLE currency (
|
|||||||
CONSTRAINT pk_currency PRIMARY KEY (code)
|
CONSTRAINT pk_currency PRIMARY KEY (code)
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
|
CREATE TABLE postal_dest (
|
||||||
|
country TEXT NOT NULL,
|
||||||
|
id INTEGER NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT pk_postal_dest PRIMARY KEY (country, id),
|
||||||
|
CONSTRAINT fk_postal_dest_country FOREIGN KEY (country) REFERENCES country (alpha2)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT
|
||||||
|
) STRICT;
|
||||||
|
|
||||||
|
CREATE TABLE bank (
|
||||||
|
country TEXT NOT NULL,
|
||||||
|
id TEXT NOT NULL,
|
||||||
|
|
||||||
|
name_full TEXT NOT NULL,
|
||||||
|
name TEXT,
|
||||||
|
name_short TEXT,
|
||||||
|
|
||||||
|
CONSTRAINT pk_bank PRIMARY KEY (country, id),
|
||||||
|
CONSTRAINT fk_bank_country FOREIGN KEY (country) REFERENCES country (alpha2)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT
|
||||||
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE wine_variety (
|
CREATE TABLE wine_variety (
|
||||||
code TEXT NOT NULL CHECK (code REGEXP '[A-Z]{2}'),
|
code TEXT NOT NULL CHECK (code REGEXP '[A-Z]{2}'),
|
||||||
type TEXT NOT NULL CHECK (type IN ('R', 'W')),
|
type TEXT NOT NULL CHECK (type IN ('R', 'W')),
|
||||||
@ -87,6 +111,8 @@ CREATE TABLE AT_ort (
|
|||||||
CREATE TABLE AT_plz (
|
CREATE TABLE AT_plz (
|
||||||
plz INTEGER NOT NULL CHECK (plz >= 1000 AND plz <= 9999),
|
plz INTEGER NOT NULL CHECK (plz >= 1000 AND plz <= 9999),
|
||||||
okz INTEGER NOT NULL,
|
okz INTEGER NOT NULL,
|
||||||
|
|
||||||
|
country TEXT NOT NULL GENERATED ALWAYS AS ('AT') STORED,
|
||||||
id INTEGER NOT NULL GENERATED ALWAYS AS (plz * 100000 + okz) STORED,
|
id INTEGER NOT NULL GENERATED ALWAYS AS (plz * 100000 + okz) STORED,
|
||||||
|
|
||||||
dest TEXT NOT NULL,
|
dest TEXT NOT NULL,
|
||||||
@ -95,62 +121,100 @@ CREATE TABLE AT_plz (
|
|||||||
CONSTRAINT sk_AT_plz_id UNIQUE (id),
|
CONSTRAINT sk_AT_plz_id UNIQUE (id),
|
||||||
CONSTRAINT fk_AT_plz_AT_ort FOREIGN KEY (okz) REFERENCES AT_ort (okz)
|
CONSTRAINT fk_AT_plz_AT_ort FOREIGN KEY (okz) REFERENCES AT_ort (okz)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT,
|
||||||
|
CONSTRAINT fk_AT_plz_postal_dest FOREIGN KEY (country, id) REFERENCES postal_dest (country, id)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE origin (
|
CREATE TRIGGER t_AT_plz_i
|
||||||
|
AFTER INSERT ON AT_plz FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO postal_dest (country, id) VALUES (new.country, new.id);
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_AT_plz_u
|
||||||
|
AFTER UPDATE OF id ON AT_plz FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
UPDATE postal_dest SET country = new.country, id = new.id WHERE (country, id) = (old.country, old.id);
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TRIGGER t_AT_plz_d
|
||||||
|
AFTER DELETE ON AT_plz FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM postal_dest WHERE (country, id) = (old.country, old.id);
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TABLE AT_bank (
|
||||||
|
blz INTEGER NOT NULL,
|
||||||
|
fbnr TEXT,
|
||||||
|
|
||||||
|
country TEXT NOT NULL GENERATED ALWAYS AS ('AT') STORED,
|
||||||
|
|
||||||
|
CONSTRAINT pk_AT_bank PRIMARY KEY (blz),
|
||||||
|
CONSTRAINT fk_AT_bank_bank FOREIGN KEY (country, blz) REFERENCES bank (country, id)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE
|
||||||
|
) STRICT;
|
||||||
|
|
||||||
|
CREATE TABLE wine_origin (
|
||||||
code TEXT NOT NULL CHECK (code REGEXP '[A-Z]{4}'),
|
code TEXT NOT NULL CHECK (code REGEXP '[A-Z]{4}'),
|
||||||
parent_code TEXT,
|
parent_code TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
|
|
||||||
land_id INTEGER,
|
land_id INTEGER,
|
||||||
|
|
||||||
CONSTRAINT pk_origin PRIMARY KEY (code),
|
CONSTRAINT pk_wine_origin PRIMARY KEY (code),
|
||||||
CONSTRAINT sk_origin_name UNIQUE (name),
|
CONSTRAINT sk_wine_origin_name UNIQUE (name),
|
||||||
CONSTRAINT fk_origin_origin FOREIGN KEY (parent_code) REFERENCES origin (code)
|
CONSTRAINT fk_wine_origin_wine_origin FOREIGN KEY (parent_code) REFERENCES wine_origin (code)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT,
|
ON DELETE RESTRICT,
|
||||||
CONSTRAINT fk_origin_AT_bundesland FOREIGN KEY (land_id) REFERENCES AT_bundesland (id)
|
CONSTRAINT fk_wine_origin_AT_bundesland FOREIGN KEY (land_id) REFERENCES AT_bundesland (id)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
-- Weinbauland
|
|
||||||
--CREATE TABLE wbl() STRICT;
|
|
||||||
|
|
||||||
-- Weinbauregion
|
|
||||||
--CREATE TABLE wbr() STRICT;
|
|
||||||
|
|
||||||
-- Generisches Weinbaugebiet
|
|
||||||
--CREATE TABLE wbgg() STRICT;
|
|
||||||
|
|
||||||
-- Spezifisches Weinbaugebeit
|
|
||||||
--CREATE TABLE wbgs() STRICT;
|
|
||||||
|
|
||||||
-- Großlage
|
-- Großlage
|
||||||
CREATE TABLE wbgl (
|
CREATE TABLE wb_gl (
|
||||||
id INTEGER NOT NULL,
|
id INTEGER NOT NULL,
|
||||||
|
origin TEXT NOT NULL,
|
||||||
|
|
||||||
CONSTRAINT pk_wbgl PRIMARY KEY (id)
|
name TEXT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT pk_wb_gl PRIMARY KEY (id),
|
||||||
|
CONSTRAINT fk_wb_gl_wine_origin FOREIGN KEY (origin) REFERENCES wine_origin (code)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
-- Weinbaugemeinde
|
-- Weinbaugemeinde
|
||||||
CREATE TABLE wbgem (
|
CREATE TABLE wb_gem (
|
||||||
id INTEGER NOT NULL,
|
id INTEGER NOT NULL,
|
||||||
|
origin TEXT NOT NULL,
|
||||||
|
gl_id INTEGER,
|
||||||
|
|
||||||
CONSTRAINT pk_wbgem PRIMARY KEY (id)
|
CONSTRAINT pk_wb_gem PRIMARY KEY (id),
|
||||||
|
CONSTRAINT fk_wb_gem_AT_gem FOREIGN KEY (id) REFERENCES AT_gem (gkz)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT,
|
||||||
|
CONSTRAINT fk_wb_gem_wine_origin FOREIGN KEY (origin) REFERENCES wine_origin (code)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT,
|
||||||
|
CONSTRAINT fk_wb_gem_wb_gl FOREIGN KEY (gl_id) REFERENCES wb_gl (id)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE RESTRICT
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
-- Weinbaukatastralgemeinde
|
-- Weinbaukatastralgemeinde
|
||||||
CREATE TABLE wbkg (
|
CREATE TABLE wb_kg (
|
||||||
id INTEGER NOT NULL,
|
id INTEGER NOT NULL,
|
||||||
|
|
||||||
CONSTRAINT pk_wbkg PRIMARY KEY (id)
|
CONSTRAINT pk_wb_kg PRIMARY KEY (id)
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
-- Ried
|
-- Ried
|
||||||
CREATE TABLE wbrd (
|
CREATE TABLE wb_rd (
|
||||||
id INTEGER NOT NULL,
|
id INTEGER NOT NULL,
|
||||||
|
|
||||||
CONSTRAINT pk_wbrd PRIMARY KEY (id)
|
CONSTRAINT pk_wb_rd PRIMARY KEY (id)
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
Reference in New Issue
Block a user