blob: 64a42584964cab29437fb3994b0583c3628e0f2d [file] [log] [blame]
DROP TRIGGER T_LEAGUE ;
DROP TRIGGER T_PLAYER ;
DROP TRIGGER T_TEAM ;
DROP TABLE TEAMPLAYER ;
DROP TABLE PLAYER ;
DROP TABLE TEAM ;
DROP TABLE LEAGUE ;
CREATE TABLE PLAYER
(
PLAYER_ID VARCHAR(255) PRIMARY KEY,
NAME VARCHAR(255),
POSITION VARCHAR(255),
SALARY DOUBLE PRECISION NOT NULL,
VERSION NUMBER(19) NOT NULL
);
CREATE TABLE LEAGUE
(
LEAGUE_ID VARCHAR(255) PRIMARY KEY,
NAME VARCHAR(255),
SPORT VARCHAR(255),
VERSION NUMBER(19) NOT NULL
);
CREATE TABLE TEAM
(
TEAM_ID VARCHAR(255) PRIMARY KEY,
CITY VARCHAR(255),
NAME VARCHAR(255),
LEAGUE_ID VARCHAR(255),
VERSION NUMBER(19) NOT NULL,
FOREIGN KEY (LEAGUE_ID) REFERENCES LEAGUE (LEAGUE_ID)
);
CREATE TABLE TEAMPLAYER
(
PLAYER_ID VARCHAR(255),
TEAM_ID VARCHAR(255),
CONSTRAINT PK_TEAMPLAYER PRIMARY KEY (PLAYER_ID, TEAM_ID),
FOREIGN KEY (TEAM_ID) REFERENCES TEAM (TEAM_ID),
FOREIGN KEY (PLAYER_ID) REFERENCES PLAYER (PLAYER_ID)
);
commit;
CREATE TRIGGER T_LEAGUE
BEFORE UPDATE ON LEAGUE
FOR EACH ROW
WHEN (NEW.VERSION = OLD.VERSION)
BEGIN
:NEW.VERSION := :OLD.VERSION + 1;
END;
/
CREATE TRIGGER T_PLAYER
BEFORE UPDATE ON PLAYER
FOR EACH ROW
WHEN (NEW.VERSION = OLD.VERSION)
BEGIN
:NEW.VERSION := :OLD.VERSION + 1;
END;
/
CREATE TRIGGER T_TEAM
BEFORE UPDATE ON TEAM
FOR EACH ROW
WHEN (NEW.VERSION = OLD.VERSION)
BEGIN
:NEW.VERSION := :OLD.VERSION + 1;
END;
/
commit;
quit;