所以,我遇到了这个问题,我创建了一个表,并添加了"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)
或类似的