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 NOT NULL, | |
NAME VARCHAR(255), | |
POSITION VARCHAR(255), | |
SALARY DOUBLE PRECISION NOT NULL, | |
VERSION NUMERIC(19) NOT NULL | |
); | |
CREATE TABLE LEAGUE | |
( | |
LEAGUE_ID VARCHAR(255) PRIMARY KEY NOT NULL, | |
NAME VARCHAR(255), | |
SPORT VARCHAR(255), | |
VERSION NUMERIC(19) NOT NULL | |
); | |
CREATE TABLE TEAM | |
( | |
TEAM_ID VARCHAR(255) PRIMARY KEY NOT NULL, | |
CITY VARCHAR(255), | |
NAME VARCHAR(255), | |
LEAGUE_ID VARCHAR(255), | |
VERSION NUMERIC(19) NOT NULL, | |
FOREIGN KEY (LEAGUE_ID) REFERENCES LEAGUE (LEAGUE_ID) | |
); | |
CREATE TABLE TEAMPLAYER | |
( | |
PLAYER_ID VARCHAR(255) NOT NULL, | |
TEAM_ID VARCHAR(255) NOT NULL, | |
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 | |
NO CASCADE | |
BEFORE UPDATE ON LEAGUE | |
REFERENCING | |
NEW AS N_ROW | |
OLD AS O_ROW | |
FOR EACH ROW MODE DB2SQL | |
WHEN (N_ROW.VERSION = O_ROW.VERSION) | |
SET N_ROW.VERSION = O_ROW.VERSION + 1 | |
; | |
CREATE TRIGGER T_PLAYER | |
NO CASCADE | |
BEFORE UPDATE ON PLAYER | |
REFERENCING | |
NEW AS N_ROW | |
OLD AS O_ROW | |
FOR EACH ROW MODE DB2SQL | |
WHEN (N_ROW.VERSION = O_ROW.VERSION) | |
SET N_ROW.VERSION = O_ROW.VERSION + 1 | |
; | |
CREATE TRIGGER T_TEAM | |
NO CASCADE | |
BEFORE UPDATE ON TEAM | |
REFERENCING | |
NEW AS N_ROW | |
OLD AS O_ROW | |
FOR EACH ROW MODE DB2SQL | |
WHEN (N_ROW.VERSION = O_ROW.VERSION) | |
SET N_ROW.VERSION = O_ROW.VERSION + 1 | |
; | |
commit; | |
quit; |