繁体   English   中英

更新为NULL时列'x'的数据被截断

[英]Data truncated for column 'x' when updating to NULL

我有一个MySQL表,该表包含名为float_type的free_delivery_treshold列, 未选中 NOT NULL。 如果我插入省略该列的数据,则会插入默认值(NULL)。 但是,如果将其值更新NULL ,空字符串或\\N ,则会得到一个

WARN_DATA_TRUNCATED:第1行的“ free_delivery_treshold”列的数据被截断

错误。

如何将此列的值更新为NULL?

如果要将free_delivery_treshold列更新为NULL ,可以尝试此操作。

您不能将free_delivery_treshold更新为空字符串或\\N因为类型为float

CREATE TABLE T(free_delivery_treshold  float);

INSERT INTO T VALUES (1);

UPDATE T
SET free_delivery_treshold =NULL

查询1

SELECT * FROM T

结果

| free_delivery_treshold |
|------------------------|
|                 (null) |

如果要将NULL数据更新为空字符串或\\N ,则需要使用charvarchar而不是float。

CREATE TABLE T(free_delivery_treshold  varchar(50));

INSERT INTO T VALUES (NULL);

UPDATE T
SET free_delivery_treshold =''
WHERE free_delivery_treshold IS NULL

查询1

SELECT * FROM T

结果

| free_delivery_treshold |
|------------------------|
|                        |

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM