如何使 table 列成为其他两列的平均值
How to make a table column an average of two other columns
有没有办法让列类型成为其他两列的等式?
这是我的 table
CREATE TABLE `tbl_leaderboard` (
`leaderboardID` INTEGER NOT NULL AUTO_INCREMENT,
`totalScore` INTEGER DEFAULT 0 NOT NULL,
`gamesPlayed` INTEGER DEFAULT 0 NOT NULL,
`averageScore` INTEGER DEFAULT 0 NOT NULL,
`player_score` INTEGER DEFAULT 0 NOT NULL,
`userID` INTEGER NOT NULL,
`playerID` INTEGER NOT NULL,
PRIMARY KEY (`leaderboardID`),
FOREIGN KEY (`userID`) REFERENCES `tbl_user`(`userID`) ON DELETE CASCADE,
FOREIGN KEY (`playerID`) REFERENCES `tbl_player`(`playerID`) ON DELETE CASCADE
);
我希望 averageScore
等于 totalscore/gamesPlayed
。是否可以让列类型像这样工作,还是只对插入语句起作用?
它被称为 computed column
或 generated column
特征:
CREATE TABLE `tbl_leaderboard` (
`leaderboardID` INTEGER NOT NULL AUTO_INCREMENT,
`totalScore` INTEGER DEFAULT 0 NOT NULL,
`gamesPlayed` INTEGER DEFAULT 0 NOT NULL,
`averageScore` DOUBLE as (totalscore /gamesPlayed) ,
`player_score` INTEGER DEFAULT 0 NOT NULL,
`userID` INTEGER NOT NULL,
`playerID` INTEGER NOT NULL,
PRIMARY KEY (`leaderboardID`),
FOREIGN KEY (`userID`) REFERENCES `tbl_user`(`userID`) ON DELETE CASCADE,
FOREIGN KEY (`playerID`) REFERENCES `tbl_player`(`playerID`) ON DELETE CASCADE
);
而且您不必在 update/insert 语句中提及它,因为它会根据其他列自动计算
有没有办法让列类型成为其他两列的等式? 这是我的 table
CREATE TABLE `tbl_leaderboard` (
`leaderboardID` INTEGER NOT NULL AUTO_INCREMENT,
`totalScore` INTEGER DEFAULT 0 NOT NULL,
`gamesPlayed` INTEGER DEFAULT 0 NOT NULL,
`averageScore` INTEGER DEFAULT 0 NOT NULL,
`player_score` INTEGER DEFAULT 0 NOT NULL,
`userID` INTEGER NOT NULL,
`playerID` INTEGER NOT NULL,
PRIMARY KEY (`leaderboardID`),
FOREIGN KEY (`userID`) REFERENCES `tbl_user`(`userID`) ON DELETE CASCADE,
FOREIGN KEY (`playerID`) REFERENCES `tbl_player`(`playerID`) ON DELETE CASCADE
);
我希望 averageScore
等于 totalscore/gamesPlayed
。是否可以让列类型像这样工作,还是只对插入语句起作用?
它被称为 computed column
或 generated column
特征:
CREATE TABLE `tbl_leaderboard` (
`leaderboardID` INTEGER NOT NULL AUTO_INCREMENT,
`totalScore` INTEGER DEFAULT 0 NOT NULL,
`gamesPlayed` INTEGER DEFAULT 0 NOT NULL,
`averageScore` DOUBLE as (totalscore /gamesPlayed) ,
`player_score` INTEGER DEFAULT 0 NOT NULL,
`userID` INTEGER NOT NULL,
`playerID` INTEGER NOT NULL,
PRIMARY KEY (`leaderboardID`),
FOREIGN KEY (`userID`) REFERENCES `tbl_user`(`userID`) ON DELETE CASCADE,
FOREIGN KEY (`playerID`) REFERENCES `tbl_player`(`playerID`) ON DELETE CASCADE
);
而且您不必在 update/insert 语句中提及它,因为它会根据其他列自动计算