如何使 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 columngenerated 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 语句中提及它,因为它会根据其他列自动计算