Mysql Change Int默认值为零

问题描述 投票:4回答:4

嗨,我正在使用mysql工作laravel 5。我确实将zipcode存储到我的数据库中它运行良好但是当字段为空时它存储为零(0)但我想在数据库中存储空值。

我也使用alter table更改了mysql,如下所示ALTER TABLE insurances CHANGE COLUMN zipcode4 zipcode4 int(4)unsigned DEFAULT NULL;但它不会工作,有什么想法吗?

提前致谢

mysql alter-table
4个回答
3
投票

嗯,zipcode是固定字符的东西,不需要任何算术运算,所以,

  1. 您可以将数据类型更改为CHAR或VARCHAR
  2. 插入查询时强制插入NULL值!

试试这个,

3.

 ALTER TABLE insurances CHANGE zipcode4 zipcode4 int(4) DEFAULT NULL;

1
投票

某些以前版本的MySQL不允许INT字段使用DEFAULT NULL,而是在thisthis链接上引用有关如何将字段值设置为null的答案。


0
投票

以前的默认值是0,所以在更改默认值之后它们仍保留它,在更改默认值后更新它,执行以下操作:

UPDATE mytable set zipcode4=NULL WHERE zipcode4=0

如果未提供值,则新值将正确地设置为NULL


-1
投票

这段代码100%准确

UPDATE mytable SET zipcode4 = NULL WHERE zipcode4 = 0
UPDATE mytable SET Myfield = NULL WHERE Myfield = 0
© www.soinside.com 2019 - 2024. All rights reserved.