gpt4 book ai didi

mysql - MySQL中如何使用表达式生成列?

转载 作者:行者123 更新时间:2023-11-29 07:33:00 24 4
gpt4 key购买 nike

现在我想创建一个包含学生分数的表。有四列:student_idhomework_scoreexam_scorefinal_score。我想让 final_score 由表达式生成:Round(homework_score * 0.3 + final_score * 0.7)。以下是我的 SQL 脚本:

CREATE TABLE course (
student_id CHAR(8) NOT NULL,
homework_score INT NULL,
exam_score INT NULL,
final_score INT NULL DEFAULT Round((homework_score * 0.3 + exam_score * 0.7),0),
PRIMARY KEY (student_id))ENGINE = InnoDB;

当我尝试执行 SQL 时,MySQL 说 DEFAULT Round((homework_score * 0.3 + exam_score * 0.7),0) 中存在语法错误。
我是 MySQL 的新手,我不知道我的 SQL 有什么问题。如果有人能帮助我,我将不胜感激。

最佳答案

default 约束必须是常量。从 MySQL 5.7.? 开始,MySQL 支持生成列。您可以将其表示为:

CREATE TABLE course (
student_id CHAR(8) NOT NULL,
homework_score INT NULL,
exam_score INT NULL,
final_score INT as ( Round((homework_score * 0.3 + exam_score * 0.7), 0) ),
PRIMARY KEY (student_id)
) ENGINE = InnoDB;

在早期版本中,您需要使用 View 或触发器来生成值。

关于mysql - MySQL中如何使用表达式生成列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50302224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com