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 DECIMAL(19) NOT NULL | |
) engine=InnoDB; | |
CREATE TABLE LEAGUE | |
( | |
LEAGUE_ID VARCHAR(255) PRIMARY KEY, | |
NAME VARCHAR(255), | |
SPORT VARCHAR(255), | |
VERSION DECIMAL(19) NOT NULL | |
) engine=InnoDB; | |
CREATE TABLE TEAM | |
( | |
TEAM_ID VARCHAR(255) PRIMARY KEY, | |
CITY VARCHAR(255), | |
NAME VARCHAR(255), | |
LEAGUE_ID VARCHAR(255), | |
VERSION DECIMAL(19) NOT NULL, | |
FOREIGN KEY (LEAGUE_ID) REFERENCES LEAGUE (LEAGUE_ID) | |
) engine=InnoDB; | |
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) | |
) engine=InnoDB; | |
commit; | |
CREATE TRIGGER T_LEAGUE | |
BEFORE UPDATE ON LEAGUE | |
FOR EACH ROW | |
SET NEW.VERSION = OLD.VERSION + 1 | |
; | |
CREATE TRIGGER T_PLAYER | |
BEFORE UPDATE ON PLAYER | |
FOR EACH ROW | |
SET NEW.VERSION = OLD.VERSION + 1 | |
; | |
CREATE TRIGGER T_TEAM | |
BEFORE UPDATE ON TEAM | |
FOR EACH ROW | |
SET NEW.VERSION = OLD.VERSION + 1 | |
; | |
commit; | |
quit; |