1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
CREATE TABLE actor (
actor_id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE language (
language_id INTEGER PRIMARY KEY AUTOINCREMENT,
name CHAR(20) NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE film (
film_id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR(255) NOT NULL,
description TEXT DEFAULT NULL,
release_year year DEFAULT NULL,
language_id SMALLINT NOT NULL,
original_language_id SMALLINT,
rental_duration SMALLINT NOT NULL DEFAULT 3,
rental_rate NUMERIC(4,2) NOT NULL DEFAULT 4.99,
length SMALLINT,
replacement_cost NUMERIC(5,2) NOT NULL DEFAULT 19.99,
rating VARCHAR DEFAULT 'G',
special_features TEXT[],
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT film_rating_check CHECK ((((((rating = 'G') OR (rating = 'PG')) OR (rating = 'PG-13')) OR (rating = 'R')) OR (rating = 'NC-17'))),
CONSTRAINT fk_film_language FOREIGN KEY (language_id) REFERENCES language (language_id) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_film_language_original FOREIGN KEY (original_language_id) REFERENCES language (language_id) ON DELETE RESTRICT ON UPDATE CASCADE
);
CREATE TABLE film_actor (
actor_id INTEGER NOT NULL,
film_id INTEGER NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_film_actor_actor FOREIGN KEY (actor_id) REFERENCES actor (actor_id) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_film_actor_film FOREIGN KEY (film_id) REFERENCES film (film_id) ON DELETE RESTRICT ON UPDATE CASCADE
);
|