【问题标题】:Can't insert DECIMAL values into my table MYSQL. ER_WARN_DATA_OUT_OF_RANGE无法将 DECIMAL 值插入到我的表 MYSQL 中。 ER_WARN_DATA_OUT_OF_RANGE
【发布时间】: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 值。

【问题讨论】:

标签: mysql sql database error-handling


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-07
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多