Vastus (14.11.2024 13:13): See on hea näide, kuidas SQLi dialekt e mägimurrak erineb erinevates andmebaasisüsteemides
detailide poolest. Järgnev katsetus tehti keskkondades
DB Fiddle,
SQL Fiddle ja
db<>fiddle.
CREATE TABLE Riik (riik_kood CHAR(3) NOT NULL,
CONSTRAINT pk_riik PRIMARY KEY (riik_kood));
CREATE TABLE Isik(isik_id INTEGER NOT NULL,
pikkus SMALLINT NOT NULL,
kaal SMALLINT NOT NULL,
riik_kood CHAR(3) NOT NULL,
CONSTRAINT pk_isik PRIMARY KEY (isik_id),
CONSTRAINT chk_isik_pikkus CHECK (pikkus>0),
CONSTRAINT chk_isik_kaal CHECK (kaal>0),
CONSTRAINT fk_isik_riik FOREIGN KEY (riik_kood) REFERENCES Riik (riik_kood));
Kustuta tabelist
Isik ühe lausega CHECK kitsendused ning välisvõtme kitsendus.
PostgreSQL (17), MySQL (9), Firebird (4), MariaDB (10.9):
ALTER TABLE Isik
DROP CONSTRAINT chk_isik_pikkus,
DROP CONSTRAINT chk_isik_kaal,
DROP CONSTRAINT fk_isik_riik;
--komadega
Oracle (23ai), IBM DB2 (11):
ALTER TABLE Isik
DROP CONSTRAINT chk_isik_pikkus
DROP CONSTRAINT chk_isik_kaal
DROP CONSTRAINT fk_isik_riik;
--komadeta
MS SQL Server (2022):
ALTER TABLE Isik
DROP CONSTRAINT chk_isik_pikkus, chk_isik_kaal, fk_isik_riik;
MS Access (365):
ALTER TABLE Isik DROP CONSTRAINT chk_isik_pikkus;
ALTER TABLE Isik DROP CONSTRAINT chk_isik_kaal;
ALTER TABLE Isik DROP CONSTRAINT fk_isik_riik;
--eraldi laused
LibreOffice Base (
HSQLDB),
SQLite (3.39):
Kitsendusi saab defineerida, kuid ALTER TABLE lausega kustutada ei saa.