mysql - 我受到 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
我也会遇到同样的错误,我做错了什么?
解决方案
对于数值,您应该使用数字而不是字符串,因此您应该避免在数字周围使用引号.. 使用引号您有一个隐式转换(按浮点数和十进制数),因此您超过了限制并且您有截断警告
INSERT INTO MACCHINE
(id_macchina,id_upX, descrizione, data_acquisto, valore)
VALUES
("M01","UP01","SOMETHING", "1994-04-13", 1400000.00);
推荐阅读
- javascript - 在画布中动态添加下拉菜单
- r - 数据框中两列的部分匹配字符串
- android - 如何识别文本是否为椭圆形
- python - 在 conda 环境中使用 pip 设置包版本
- php - Wordpress - 按下按钮时打开弹出窗口
- javascript - 如何制作可编辑的 event.keyCode
- python - 将 APNs 身份验证密钥转换为与 PyJWT 一起使用
- microsoft-graph-api - Microsoft Graph:为所有者阅读 Outlook 电子邮件
- matlab - 成对相似性和排序样本
- c++ - 从 strcpy_s 获取“L 缓冲区太小 && 0”错误 - 尝试创建重载的 + 运算符