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

时间:2018-08-24 08:38:10

标签: mysql sql

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

  

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

错误。

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

1 个答案:

答案 0 :(得分:1)

如果要将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

Results

| 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

Results

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