当前正在研究篮球性能数据库。我遇到的问题是存储比赛的胜者。 对照表目前像这样:在ORACLE中插入数据时根据条件设置列
CREATE TABLE Matches(
M_ID int CONSTRAINT pk_Match PRIMARY KEY,
M_Date Date NOT NULL,
M_Location varchar(20),
M_HomeTeam int NOT NULL,
M_AwayTeam int NOT NULL,
M_HomeScore int NOT NULL,
M_AwayScore int NOT NULL,
M_Winner int,
CONSTRAINT fk_TeamHome foreign key (M_HomeTeam) REFERENCES Team(T_ID),
CONSTRAINT fk_TeamAway foreign key (M_AwayTeam) REFERENCES Team(T_ID)
)
我要的是M_Winner的值设置为M_HomeTeam &根据自己的分数M_AwayTeam外键。 我已经能够用这条update语句
UPDATE Matches
SET M_Winner = CASE
WHEN M_HomeScore > M_AwayScore
THEN M_HomeTeam
WHEN M_AwayScore > M_HomeScore
THEN M_AwayTeam
END;
做到这一点不过,我需要插入数据时,它的工作。 任何想法?
作为@GordonLinoff会在30秒内告诉你,你可以使用触发器来做到这一点。 –
错误:-)他有一个更好的解决方案。 – trincot