【发布时间】:2023-01-18 01:56:32
【问题描述】:
所以,我遇到了这个问题,我创建了一个表,并为类型 DECIMAL 值添加了一个“student_grade”列:
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);
插入这些值中的任何一个都会出错:
错误:第 1 行“student_grade”列的值超出范围 错误代码:ER_WARN_DATA_OUT_OF_RANGE
我重新创建并在新查询中运行了它,但它仍然不起作用。 也许我遗漏了什么,有人有什么想法吗?
附言它允许我添加整数值,因此如果我将表的列类型从 DECIMAL 更改为 INT 并插入一个 INT 值,它可以工作,但为此我需要 DECIMAL 或 FLOAT 值。
【问题讨论】:
-
查看
DECIMAL(4, 4)实际允许的内容
标签: mysql sql database error-handling