首页 > 解决方案 > 我受到 1 行影响,1 个警告,但我插入了正确的值

问题描述

我正在创建一个数据库,我正在尝试在我的表中添加一些值,我对一个选项卡有 1 个警告(但数据存储正确)该表是

CREATE TABLE MACCHINE(
    id_macchina VARCHAR(3) PRIMARY KEY NOT NULL, # M01... M20
    id_upX VARCHAR(4) NOT NULL, #MUL
    descrizione VARCHAR(200) NOT NULL,
    data_acquisto DATE NOT NULL,
    valore DECIMAL(10,2) NOT NULL);

值是

INSERT INTO MACCHINE
(id_macchina,id_upX, descrizione, data_acquisto, valore)
VALUES
("M01","UP01","SOMETHING", "1994-04-13", "1400000,00");

但我得到了错误

Query OK, 1 row affected, 1 warning (0.01 sec)

如果我写SHOW WARNINGS我得到| Warning | 1265 | Data truncated for column 'valore' at row 1

但为什么?数字只有 9,我将限制设置为 10,但如果我尝试插入,60,00我也会遇到同样的错误,我做错了什么?

标签: mysql

解决方案


对于数值,您应该使用数字而不是字符串,因此您应该避免在数字周围使用引号.. 使用引号您有一个隐式转换(按浮点数和十进制数),因此您超过了限制并且您有截断警告

INSERT INTO MACCHINE
(id_macchina,id_upX, descrizione, data_acquisto, valore)
VALUES
("M01","UP01","SOMETHING", "1994-04-13", 1400000.00); 

推荐阅读