我受到1行影响,1条警告,但我插入了正确的值

时间:2018-07-31 04:53:45

标签: mysql

我正在创建一个数据库,并尝试在表中添加一些值,我对一个选项卡进行了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,也会遇到相同的错误,这是我做错了吗?

1 个答案:

答案 0 :(得分:3)

对于数字值,应使用数字而不是字符串,因此应避免在数字两边使用引号。.使用引号具有隐式转换(以浮点数和小数表示的小数),因此您超过了限制,并且截断了警告

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