MYSQL: 1265 列数据被截断了吗?
MYSQL: 1265 Data truncated for column?
我有以下 MYSQL
声明:
UPDATE `db`.`appointment` SET `timezone` = 'America/New_York' WHERE (`id` = '114');
当我 运行 它时,我得到:
1 row(s) affected, 1 warning(s): 1265 **Data truncated** for column 'timezone' at row 1 Rows matched: 1 Changed: 1 Warnings: 1 0.110 sec
并且时区列不是 America/New_York
,而是保存为 America/Ne
。
如何确保 完整 值被保存而不是 t运行cated?
这里的问题(@tadman 在评论中指出)是 column length
太小了。
它是 VARCHAR(10)
,当我将列更新为 VARCHAR(256)
时,它按预期工作。
我在尝试使用值更新列时也遇到了这个问题。
列和值都是十进制的。
我的不起作用的原因是我正在格式化要更新的值
例如
Update Account Set Balance = Format(NewValue, 2)
为了解决这个问题,我删除了格式化并将其设置为 NewValue
至于为什么我要格式化值
我担心数据附带的额外零,就像 100.000000000000
像这样。
我有以下 MYSQL
声明:
UPDATE `db`.`appointment` SET `timezone` = 'America/New_York' WHERE (`id` = '114');
当我 运行 它时,我得到:
1 row(s) affected, 1 warning(s): 1265 **Data truncated** for column 'timezone' at row 1 Rows matched: 1 Changed: 1 Warnings: 1 0.110 sec
并且时区列不是 America/New_York
,而是保存为 America/Ne
。
如何确保 完整 值被保存而不是 t运行cated?
这里的问题(@tadman 在评论中指出)是 column length
太小了。
它是 VARCHAR(10)
,当我将列更新为 VARCHAR(256)
时,它按预期工作。
我在尝试使用值更新列时也遇到了这个问题。 列和值都是十进制的。
我的不起作用的原因是我正在格式化要更新的值
例如
Update Account Set Balance = Format(NewValue, 2)
为了解决这个问题,我删除了格式化并将其设置为 NewValue
至于为什么我要格式化值
我担心数据附带的额外零,就像 100.000000000000
像这样。