Fix sql REGEXP check constraints
This commit is contained in:
@ -6,8 +6,8 @@ CREATE TABLE meta (
|
||||
);
|
||||
|
||||
CREATE TABLE country (
|
||||
alpha2 TEXT NOT NULL CHECK (alpha2 REGEXP '[A-Z]{2}'),
|
||||
alpha3 TEXT NOT NULL CHECK (alpha3 REGEXP '[A-Z]{3}'),
|
||||
alpha2 TEXT NOT NULL CHECK (alpha2 REGEXP '^[A-Z]{2}$'),
|
||||
alpha3 TEXT NOT NULL CHECK (alpha3 REGEXP '^[A-Z]{3}$'),
|
||||
num INTEGER NOT NULL CHECK (num >= 0),
|
||||
name TEXT NOT NULL,
|
||||
|
||||
@ -20,7 +20,7 @@ CREATE TABLE country (
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE currency (
|
||||
code TEXT NOT NULL CHECK (code REGEXP '[A-Z]{3}'),
|
||||
code TEXT NOT NULL CHECK (code REGEXP '^[A-Z]{3}$'),
|
||||
name TEXT NOT NULL,
|
||||
symbol TEXT,
|
||||
|
||||
@ -127,7 +127,7 @@ BEGIN
|
||||
END;
|
||||
|
||||
CREATE TABLE wine_variety (
|
||||
sortid TEXT NOT NULL CHECK (sortid REGEXP '[A-Z]{2}'),
|
||||
sortid TEXT NOT NULL CHECK (sortid REGEXP '^[A-Z]{2}$'),
|
||||
type TEXT NOT NULL CHECK (type IN ('R', 'W')),
|
||||
name TEXT NOT NULL,
|
||||
comment TEXT,
|
||||
@ -136,7 +136,7 @@ CREATE TABLE wine_variety (
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE wine_quality (
|
||||
qualid TEXT NOT NULL CHECK (qualid REGEXP '[A-Z]{3}'),
|
||||
qualid TEXT NOT NULL CHECK (qualid REGEXP '^[A-Z]{3}$'),
|
||||
origin_level INTEGER NOT NULL,
|
||||
|
||||
name TEXT NOT NULL,
|
||||
@ -147,7 +147,7 @@ CREATE TABLE wine_quality (
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE wine_origin (
|
||||
hkid TEXT NOT NULL CHECK (hkid REGEXP '[A-Z]{4}'),
|
||||
hkid TEXT NOT NULL CHECK (hkid REGEXP '^[A-Z]{4}$'),
|
||||
parent_hkid TEXT,
|
||||
name TEXT NOT NULL,
|
||||
|
||||
@ -217,14 +217,14 @@ CREATE TABLE wb_rd (
|
||||
|
||||
|
||||
CREATE TABLE branch (
|
||||
zwstid TEXT NOT NULL CHECK (zwstid REGEXP '[A-Z]'),
|
||||
zwstid TEXT NOT NULL CHECK (zwstid REGEXP '^[A-Z]$'),
|
||||
name TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT pk_branch PRIMARY KEY (zwstid)
|
||||
);
|
||||
|
||||
CREATE TABLE wine_attribute (
|
||||
attrid TEXT NOT NULL CHECK (attrid REGEXP '[A-Z]+'),
|
||||
attrid TEXT NOT NULL CHECK (attrid REGEXP '^[A-Z]+$'),
|
||||
name TEXT NOT NULL,
|
||||
|
||||
kg_per_ha INTEGER NOT NULL DEFAULT 10000,
|
||||
@ -233,7 +233,7 @@ CREATE TABLE wine_attribute (
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE wine_cultivation (
|
||||
cultid TEXT NOT NULL CHECK (cultid REGEXP '[A-Z]+'),
|
||||
cultid TEXT NOT NULL CHECK (cultid REGEXP '^[A-Z]+$'),
|
||||
name TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT pk_wine_cultivation PRIMARY KEY (cultid)
|
||||
@ -249,31 +249,31 @@ CREATE TABLE member (
|
||||
family_name TEXT NOT NULL,
|
||||
suffix TEXT DEFAULT NULL,
|
||||
|
||||
birthday TEXT CHECK (birthday REGEXP '[1-9][0-9]{3}(-(0[1-9]|1[012])(-(0[1-9]|[12][0-9]|3[01]))?)?') DEFAULT NULL,
|
||||
entry_date TEXT NOT NULL CHECK (entry_date REGEXP '[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])') DEFAULT CURRENT_DATE,
|
||||
exit_date TEXT CHECK (exit_date REGEXP '[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])') DEFAULT NULL,
|
||||
birthday TEXT CHECK (birthday REGEXP '^[1-9][0-9]{3}(-(0[1-9]|1[012])(-(0[1-9]|[12][0-9]|3[01]))?)?$') DEFAULT NULL,
|
||||
entry_date TEXT NOT NULL CHECK (entry_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT CURRENT_DATE,
|
||||
exit_date TEXT CHECK (exit_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT NULL,
|
||||
|
||||
business_shares INTEGER NOT NULL DEFAULT 0,
|
||||
accounting_nr TEXT DEFAULT NULL,
|
||||
zwstid TEXT NOT NULL,
|
||||
|
||||
betriebsnr TEXT DEFAULT NULL,
|
||||
ustid TEXT CHECK (ustid REGEXP '[A-Z]{2}[A-Z0-9]{2,12}') DEFAULT NULL,
|
||||
volllieferant INTEGER NOT NULL CHECK (volllieferant IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
buchführend INTEGER NOT NULL CHECK (buchführend IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
funktionär INTEGER NOT NULL CHECK (funktionär IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
active INTEGER NOT NULL CHECK (active IN (FALSE, TRUE)) DEFAULT TRUE,
|
||||
betriebsnr TEXT DEFAULT NULL,
|
||||
ustid TEXT CHECK (ustid REGEXP '^[A-Z]{2}[A-Z0-9]{2,12}$') DEFAULT NULL,
|
||||
volllieferant INTEGER NOT NULL CHECK (volllieferant IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
buchführend INTEGER NOT NULL CHECK (buchführend IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
funktionär INTEGER NOT NULL CHECK (funktionär IN (FALSE, TRUE)) DEFAULT FALSE,
|
||||
active INTEGER NOT NULL CHECK (active IN (FALSE, TRUE)) DEFAULT TRUE,
|
||||
|
||||
iban TEXT CHECK (iban REGEXP '[A-Z]{2}[0-9]{2}[A-Z0-9]{8,30}') DEFAULT NULL,
|
||||
bic TEXT CHECK (bic REGEXP '[A-Z0-9]{4}[A-Z]{2}[A-Z0-9]{2}[A-Z0-9]{3}?') DEFAULT NULL,
|
||||
iban TEXT CHECK (iban REGEXP '^[A-Z]{2}[0-9]{2}[A-Z0-9]{8,30}$') DEFAULT NULL,
|
||||
bic TEXT CHECK (bic REGEXP '^[A-Z0-9]{4}[A-Z]{2}[A-Z0-9]{2}[A-Z0-9]{3}?$') DEFAULT NULL,
|
||||
|
||||
country TEXT NOT NULL,
|
||||
postal_dest TEXT NOT NULL,
|
||||
address TEXT NOT NULL,
|
||||
|
||||
email TEXT CHECK (email REGEXP '[^@]+@([a-z0-9_\x2Däöüß]+\.)[a-z]{2,}') DEFAULT NULL,
|
||||
phone_landline TEXT CHECK (phone_landline REGEXP '\+[0-9]+') DEFAULT NULL,
|
||||
phone_mobile TEXT CHECK (phone_mobile REGEXP '\+[0-9]+') DEFAULT NULL,
|
||||
email TEXT CHECK (email REGEXP '^[^@]+@([a-z0-9_\x2Däöüß]+\.)[a-z]{2,}$') DEFAULT NULL,
|
||||
phone_landline TEXT CHECK (phone_landline REGEXP '^\+[0-9]+$') DEFAULT NULL,
|
||||
phone_mobile TEXT CHECK (phone_mobile REGEXP '^\+[0-9]+$') DEFAULT NULL,
|
||||
|
||||
default_kgnr INTEGER NOT NULL,
|
||||
comment TEXT DEFAULT NULL,
|
||||
@ -326,7 +326,7 @@ CREATE TABLE contract (
|
||||
CREATE TABLE area_commitment (
|
||||
vnr INTEGER NOT NULL,
|
||||
kgnr INTEGER NOT NULL,
|
||||
gstnr TEXT NOT NULL CHECK (gstnr REGEXP '\.?[1-9][0-9]*(/[1-9][0-9]*)*'),
|
||||
gstnr TEXT NOT NULL CHECK (gstnr REGEXP '^\.?[1-9][0-9]*(/[1-9][0-9]*)*$'),
|
||||
|
||||
rdnr INTEGER,
|
||||
area INTEGER NOT NULL,
|
||||
@ -361,8 +361,8 @@ CREATE TABLE season (
|
||||
year INTEGER NOT NULL CHECK (year >= 1000 AND year <= 9999),
|
||||
currency TEXT NOT NULL,
|
||||
|
||||
start_date TEXT CHECK (start_date REGEXP '[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])'),
|
||||
end_date TEXT CHECK (end_date REGEXP '[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])'),
|
||||
start_date TEXT CHECK (start_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'),
|
||||
end_date TEXT CHECK (end_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'),
|
||||
|
||||
CONSTRAINT pk_season PRIMARY KEY (year),
|
||||
CONSTRAINT fk_season_currency FOREIGN KEY (currency) REFERENCES currency (code)
|
||||
@ -391,8 +391,8 @@ CREATE TABLE delivery (
|
||||
year INTEGER NOT NULL,
|
||||
did INTEGER NOT NULL,
|
||||
|
||||
date TEXT NOT NULL CHECK (date LIKE year || '-%' AND date REGEXP '[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])') DEFAULT CURRENT_DATE,
|
||||
time TEXT NOT NULL CHECK (time REGEXP '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]') DEFAULT CURRENT_TIME,
|
||||
date TEXT NOT NULL CHECK (date LIKE year || '-%' AND date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT CURRENT_DATE,
|
||||
time TEXT NOT NULL CHECK (time REGEXP '^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$') DEFAULT CURRENT_TIME,
|
||||
zwstid TEXT NOT NULL,
|
||||
lnr INTEGER NOT NULL CHECK (lnr >= 1 AND lnr <= 999),
|
||||
lsnr TEXT NOT NULL DEFAULT 'UNSET',
|
||||
|
Reference in New Issue
Block a user