SET client_encoding=LATIN9;

/*Kas õnnestub täita kõik laused või jäävad kõik täitmata*/
START TRANSACTION;

CREATE TABLE Auto (
Auto_ID SERIAL,
Mark_ID SMALLINT NOT NULL,
registri_nr VARCHAR(6) NOT NULL,
CONSTRAINT ak_auto_registri_nr UNIQUE (registri_nr),
CONSTRAINT pk_auto PRIMARY KEY (Auto_ID));

CREATE TABLE Mark (
Mark_ID SMALLINT NOT NULL,
nimetus VARCHAR(50) NOT NULL,
CONSTRAINT ak_mark_nimetus UNIQUE (nimetus),
CONSTRAINT pk_mark PRIMARY KEY (Mark_ID));

CREATE TABLE Mark2 (
Mark_ID SMALLINT NOT NULL,
nimetus VARCHAR(50) NOT NULL,
CONSTRAINT ak_mark2_nimetus UNIQUE (nimetus),
CONSTRAINT pk_mark2 PRIMARY KEY (Mark_ID));

ALTER TABLE Auto ADD CONSTRAINT fk_Auto_Mark_ID FOREIGN KEY (Mark_ID) REFERENCES Mark(Mark_ID) ON UPDATE CASCADE;
CREATE INDEX idx_Auto_Mark_ID ON Auto(Mark_ID);

INSERT INTO Mark (mark_id, nimetus) VALUES (1, 'Volga');
INSERT INTO Mark (mark_id, nimetus) VALUES (2, 'Volvo');
INSERT INTO Mark (mark_id, nimetus) VALUES (3, 'Scania');
INSERT INTO Mark (mark_id, nimetus) VALUES (4, 'Audi');
INSERT INTO Mark2 (mark_id, nimetus) VALUES (1, 'Mercedes');
INSERT INTO Mark2 (mark_id, nimetus) VALUES (2, 'Volvo');
INSERT INTO Mark2 (mark_id, nimetus) VALUES (3, 'Ford');
INSERT INTO Mark2 (mark_id, nimetus) VALUES (4, 'Saab');
INSERT INTO Auto (auto_id, mark_id, registri_nr) VALUES (1, 2, '333ABC');
INSERT INTO Auto (auto_id, mark_id, registri_nr) VALUES (2, 2, '598DDE');
INSERT INTO Auto (auto_id, mark_id, registri_nr) VALUES (3, 3, '456EDR');
INSERT INTO Auto (auto_id, mark_id, registri_nr) VALUES (4, 1, '689KLA');

/*Järgmine generaatori väljastatav väärtus on 5*/
SELECT setval('auto_auto_id_seq', 4);

COMMIT;