DROP TABLE Kuvio ; DROP TABLE Muoto ; CREATE TABLE Muoto ( MuotoID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Muotonimi VARCHAR(100) NOT NULL ) ; CREATE TABLE Kuvio ( KuvioID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Kuvionimi VARCHAR(100) NOT NULL, Tiedostonimi VARCHAR(100) NOT NULL, Muoto_MuotoID INTEGER NOT NULL ) ; -- Koska SQLite ei toteuta viite-eheyksiä toteutetaan ne itse -- triggereiden avulla CREATE TRIGGER fki_kuvio_muoto_id BEFORE INSERT ON Kuvio FOR EACH ROW BEGIN SELECT CASE WHEN ((SELECT MuotoID FROM Muoto WHERE MuotoID = NEW.Muoto_MuotoID) IS NULL) THEN RAISE(ABORT, 'INSERT on table "Kuvio" violates foreign key constraint "fki_kuvio_muoto_id"') END; END; CREATE TRIGGER fku_kuvio_muoto_id BEFORE UPDATE ON Kuvio FOR EACH ROW BEGIN SELECT CASE WHEN ((SELECT MuotoID FROM Muoto WHERE MuotoID = NEW.Muoto_MuotoID) IS NULL) THEN RAISE(ABORT, 'UPDATE on table "Kuvio" violates foreign key constraint "fku_kuvio_muoto_id"') END; END; CREATE TRIGGER fkd_muoto_kuvio_id BEFORE DELETE ON Muoto FOR EACH ROW BEGIN SELECT CASE WHEN ((SELECT Muoto_MuotoID FROM Kuvio WHERE Muoto_MuotoID = OLD.MuotoID) IS NOT NULL) THEN RAISE(ABORT, 'DELETE on table "Muoto" violates foreign key constraint "fkd_muoto_kuvio_id"') END; END; INSERT INTO Muoto (MuotoID, Muotonimi) VALUES (1, 'Nelikulmio' ); INSERT INTO Muoto (MuotoID, Muotonimi) VALUES (2, 'Ympyrä' ); INSERT INTO Muoto (MuotoID, Muotonimi) VALUES (3, 'Monikulmio' ); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (1, 'korotettu harmaa laatikko', 'nelikulmio1.png', 1); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (2, 'harmaa neliö', 'nelikulmio2.png', 1); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (3, 'käännetty musta salmiakki', 'nelikulmio3.png', 1); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (4, 'keltainen rikkinäinen neliö', 'nelikulmio4.png', 1); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (5, 'harmaa robottineliö', 'nelikulmio5.png', 1); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (6, 'keltainen ympyrä', 'ympyra1.png', 2); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (7, 'vihreä iloinen pää', 'ympyra2.png', 2); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (8, 'sininen pacmanpallo', 'ympyra3.png', 2); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (9, 'punainen ympyrä', 'ympyra4.png', 2); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (10, 'vihreä hätääntynyt pää', 'ympyra5.png', 2); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (11, 'harmaa robottimonikulmio', 'monikulmio1.png', 3); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (12, 'psykedeelinen pinkki monikulmio', 'monikulmio2.png', 3); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (13, 'räjähtävä keltainen halpa-tekstillä', 'monikulmio3.png', 3); INSERT INTO Kuvio (KuvioID, Kuvionimi, Tiedostonimi, Muoto_MuotoID) VALUES (14, 'punainen tähti', 'monikulmio4.png', 3);