| -- Licensed to the Apache Software Foundation (ASF) under one or more | |
| -- contributor license agreements. See the NOTICE file distributed with | |
| -- this work for additional information regarding copyright ownership. | |
| -- The ASF licenses this file to You under the Apache License, Version 2.0 | |
| -- (the "License"); you may not use this file except in compliance with | |
| -- the License. You may obtain a copy of the License at | |
| -- | |
| -- http://www.apache.org/licenses/LICENSE-2.0 | |
| -- | |
| -- Unless required by applicable law or agreed to in writing, software | |
| -- distributed under the License is distributed on an "AS IS" BASIS, | |
| -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| -- See the License for the specific language governing permissions and | |
| -- limitations under the License. | |
| AUTOCOMMIT OFF; | |
| CREATE TABLE AIRLINES | |
| ( | |
| AIRLINE CHAR(2) NOT NULL , | |
| AIRLINE_FULL VARCHAR(24), | |
| BASIC_RATE DOUBLE PRECISION, | |
| DISTANCE_DISCOUNT DOUBLE PRECISION, | |
| BUSINESS_LEVEL_FACTOR DOUBLE PRECISION, | |
| FIRSTCLASS_LEVEL_FACTOR DOUBLE PRECISION, | |
| ECONOMY_SEATS INTEGER, | |
| BUSINESS_SEATS INTEGER, | |
| FIRSTCLASS_SEATS INTEGER | |
| ); | |
| ALTER TABLE AIRLINES | |
| ADD CONSTRAINT AIRLINES_PK Primary Key ( | |
| AIRLINE); | |
| -- \************************************************************\ | |
| CREATE TABLE COUNTRIES | |
| ( | |
| COUNTRY VARCHAR(26) NOT NULL, | |
| COUNTRY_ISO_CODE CHAR(2) NOT NULL , | |
| REGION VARCHAR(26) | |
| ); | |
| ALTER TABLE COUNTRIES | |
| ADD CONSTRAINT COUNTRIES_PK Primary Key ( | |
| COUNTRY_ISO_CODE); | |
| ALTER TABLE COUNTRIES | |
| ADD CONSTRAINT COUNTRIES_UNQ_NM Unique ( | |
| COUNTRY); | |
| ALTER TABLE COUNTRIES | |
| ADD CONSTRAINT COUNTRIES_UC | |
| CHECK (country_ISO_code = upper(country_ISO_code) ); | |
| -- \************************************************************\ | |
| CREATE TABLE CITIES | |
| ( | |
| CITY_ID INTEGER NOT NULL , | |
| CITY_NAME VARCHAR(24) NOT NULL, | |
| COUNTRY VARCHAR(26) NOT NULL, | |
| AIRPORT VARCHAR(3), | |
| LANGUAGE VARCHAR(16), | |
| COUNTRY_ISO_CODE CHAR(2) | |
| ); | |
| ALTER TABLE CITIES | |
| ADD CONSTRAINT CITIES_PK Primary Key ( | |
| CITY_ID); | |
| ALTER TABLE CITIES | |
| ADD CONSTRAINT COUNTRIES_FK Foreign Key ( | |
| COUNTRY_ISO_CODE) | |
| REFERENCES COUNTRIES ( | |
| COUNTRY_ISO_CODE); | |
| -- \************************************************************\ | |
| CREATE TABLE FLIGHTS | |
| ( | |
| FLIGHT_ID CHAR(6) NOT NULL , | |
| SEGMENT_NUMBER INTEGER NOT NULL , | |
| ORIG_AIRPORT CHAR(3), | |
| DEPART_TIME TIME, | |
| DEST_AIRPORT CHAR(3), | |
| ARRIVE_TIME TIME, | |
| MEAL CHAR(1), | |
| FLYING_TIME DOUBLE PRECISION, | |
| MILES INTEGER, | |
| AIRCRAFT VARCHAR(6) | |
| ); | |
| CREATE INDEX DESTINDEX ON FLIGHTS ( | |
| DEST_AIRPORT) ; | |
| CREATE INDEX ORIGINDEX ON FLIGHTS ( | |
| ORIG_AIRPORT) ; | |
| ALTER TABLE FLIGHTS | |
| ADD CONSTRAINT FLIGHTS_PK Primary Key ( | |
| FLIGHT_ID, | |
| SEGMENT_NUMBER); | |
| ALTER TABLE FLIGHTS | |
| ADD CONSTRAINT MEAL_CONSTRAINT | |
| CHECK (meal IN ('B', 'L', 'D', 'S')); | |
| -- \************************************************************\ | |
| CREATE TABLE FLIGHTAVAILABILITY | |
| ( | |
| FLIGHT_ID CHAR(6) NOT NULL , | |
| SEGMENT_NUMBER INTEGER NOT NULL , | |
| FLIGHT_DATE DATE NOT NULL , | |
| ECONOMY_SEATS_TAKEN INTEGER DEFAULT 0, | |
| BUSINESS_SEATS_TAKEN INTEGER DEFAULT 0, | |
| FIRSTCLASS_SEATS_TAKEN INTEGER DEFAULT 0 | |
| ); | |
| ALTER TABLE FLIGHTAVAILABILITY | |
| ADD CONSTRAINT FLIGHTAVAIL_PK Primary Key ( | |
| FLIGHT_ID, | |
| SEGMENT_NUMBER, | |
| FLIGHT_DATE); | |
| ALTER TABLE FLIGHTAVAILABILITY | |
| ADD CONSTRAINT FLIGHTS_FK2 Foreign Key ( | |
| FLIGHT_ID, | |
| SEGMENT_NUMBER) | |
| REFERENCES FLIGHTS ( | |
| FLIGHT_ID, | |
| SEGMENT_NUMBER); | |
| -- \************************************************************\ | |
| CREATE TABLE MAPS | |
| ( | |
| MAP_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), | |
| MAP_NAME VARCHAR(24) NOT NULL, | |
| REGION VARCHAR(26), | |
| AREA DECIMAL(8,4) NOT NULL, | |
| PHOTO_FORMAT VARCHAR(26) NOT NULL, | |
| PICTURE BLOB(102400), | |
| UNIQUE (MAP_ID, MAP_NAME) | |
| ); | |
| -- \************************************************************\ | |
| CREATE TABLE FLIGHTS_HISTORY | |
| ( | |
| FLIGHT_ID CHAR(6), | |
| SEGMENT_NUMBER INTEGER, | |
| ORIG_AIRPORT CHAR(3), | |
| DEPART_TIME TIME, | |
| DEST_AIRPORT CHAR(3), | |
| ARRIVE_TIME TIME, | |
| MEAL CHAR(1), | |
| FLYING_TIME DOUBLE PRECISION, | |
| MILES INTEGER, | |
| AIRCRAFT VARCHAR(6), | |
| STATUS VARCHAR (20) | |
| ); | |
| -- \************************************************************\ | |
| CREATE TRIGGER TRIG1 AFTER UPDATE ON FLIGHTS REFERENCING OLD AS UPDATEDROW FOR EACH ROW INSERT INTO FLIGHTS_HISTORY VALUES (UPDATEDROW.FLIGHT_ID, UPDATEDROW.SEGMENT_NUMBER, UPDATEDROW.ORIG_AIRPORT,UPDATEDROW.DEPART_TIME, UPDATEDROW.DEST_AIRPORT,UPDATEDROW.ARRIVE_TIME,UPDATEDROW.MEAL, UPDATEDROW.FLYING_TIME, UPDATEDROW.MILES, UPDATEDROW.AIRCRAFT,'INSERTED FROM TRIG1'); | |
| CREATE TRIGGER TRIG2 AFTER DELETE ON FLIGHTS FOR EACH STATEMENT | |
| INSERT INTO FLIGHTS_HISTORY (STATUS) VALUES ('INSERTED FROM TRIG2'); | |
| COMMIT; |