MySQL varchar默认为0而不是空字符串

时间:2015-02-20 14:00:26

标签: mysql sql sql-update varchar

我在VARCHAR(45)中有一个MySQL 5.5.24字段,当我尝试将其设置为0时,该字段默认为''

我以某种方式,以前从未见过这种情况,或从未注意到它。

我是否遗漏了一些明显的东西,或者这是预期的行为?

ALTER TABLE test CHANGE COLUMN my_varchar_field my_varchar_field VARCHAR(45) NOT NULL DEFAULT '';

UPDATE test SET my_varchar_field = '' WHERE my_id = 1;

SELECT my_varchar_field FROM test;

 +-----------------------------+
 |      my_varchar_field       |
 +-----------------------------+
 | 0                           |
 +-----------------------------+
 1 row in set (0.00 sec)

2 个答案:

答案 0 :(得分:0)

尝试:

UPDATE test SET my_varchar_field = NULL WHERE my_id = 1;

答案 1 :(得分:0)

试试这个

ALTER TABLE `test ` CHANGE `my_varchar_field` `my_varchar_field` VARCHAR(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';

感谢