无法将十进制值插入我的表 MYSQL 中。ER_WARN_DATA_OUT_OF_RANGE



所以,我遇到了这个问题,我创建了一个表,并添加了"student_grade"用于类型DECIMAL值的列:

CREATE TABLE relationship (
teacher_id INT,
student_id INT,
PRIMARY KEY(teacher_id, student_id),
FOREIGN KEY(teacher_id) REFERENCES teacher(teacher_id) ON DELETE CASCADE,
FOREIGN KEY(student_id) REFERENCES student(student_id) ON DELETE CASCADE
);
ALTER TABLE relationship ADD COLUMN student_grade DECIMAL(4, 4);

之后我插入值:


INSERT INTO relationship VALUES(100, 400, 5.5);
INSERT INTO relationship VALUES(101, 401, 8.2);
INSERT INTO relationship VALUES(102, 402, 6.3);
INSERT INTO relationship VALUES(102, 403, 10);
INSERT INTO relationship VALUES(101, 404, 9.1);
INSERT INTO relationship VALUES(100, 405, 4.4);

插入这些值中的任何一个都会产生错误:

错误:列'student_grade'在第1行超出范围值错误码:ER_WARN_DATA_OUT_OF_RANGE

我在新的查询中重新创建并运行了这个,但它仍然不起作用。也许我遗漏了什么,有人有什么想法吗?

注:它允许我添加整数值,所以如果我将表的列类型从DECIMAL更改为INT并插入INT值,它就可以工作,但为此我需要DECIMAL或FLOAT值。

您的(4,4)表示总共4位精度,小数点后有4位。因此,您只能使用0.0000到0.9999(或负值)的值。试试(10,4)或类似的

相关内容

最新更新