Mysql将Int的默认值从零改为null

33 浏览
0 Comments

Mysql将Int的默认值从零改为null

你好,我正在使用Laravel 5和MySQL进行开发。我成功地将邮政编码存储到我的数据库中,但是当字段为空时,它会存储为零(0),但我希望在数据库中存储为空值。我还尝试了修改MySQL表的方式,像下面这样使用ALTER TABLE:

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

但是这并没有起作用,有没有什么想法?

提前感谢。

0
0 Comments

这可能是因为原问题的解决方法仍然有效,并且没有新的解决方法出现。在18个月前,有人提出了一个问题:“如何将MySQL中的int默认值从0更改为null?”以下是解决该问题的原因和方法。

原因:

默认情况下,MySQL中的int字段的默认值为0。然而,有时我们希望将默认值更改为null,这意味着如果没有提供值,则该字段将为空。这可能是出于数据一致性或其他业务需求的原因。

解决方法:

为了将MySQL中int字段的默认值从0更改为null,可以执行以下SQL语句:

ALTER TABLE mytable MODIFY COLUMN zipcode4 INT NULL DEFAULT NULL;
ALTER TABLE mytable MODIFY COLUMN Myfield INT NULL DEFAULT NULL;

上述代码将修改名为mytable的表中的zipcode4和Myfield列的定义。通过将NULL作为默认值传递给INT列,我们将其默认值更改为null。这意味着如果未提供值,则这些列将为空。

此外,如果您想将现有值为0的行更新为null,可以执行以下SQL语句:

UPDATE mytable SET zipcode4 = NULL WHERE zipcode4 = 0;
UPDATE mytable SET Myfield = NULL WHERE Myfield = 0;

上述代码将在mytable表中将zipcode4和Myfield列的值为0的行更新为null。这将确保现有数据与新的默认值一致。

通过执行上述SQL语句,您可以将MySQL中int字段的默认值从0更改为null。这将确保数据的一致性,并满足特定业务需求。如果您需要将现有值为0的行更新为null,请使用UPDATE语句来完成此操作。这是一个简单而有效的解决方案,可以解决这个问题。

0
0 Comments

MySQL更改Int类型字段的默认值从0到null的原因是,之前的默认值是0,所以在更改默认值后仍保留了0。为了在更改默认值后更新字段的值,可以使用以下语句:UPDATE mytable set zipcode4=NULL WHERE zipcode4=0。新值将正确地将字段值设置为null,如果没有提供值的话。

0
0 Comments

问题的出现原因是在MySQL中,当将整数类型的列的默认值设置为0时,插入NULL值时,实际上会将0值插入到该列中。

解决方法是将列的数据类型更改为CHAR或VARCHAR,并在插入查询时强制插入NULL值。

具体操作如下:

1. 将数据类型更改为CHAR或VARCHAR:

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

2. 在插入查询时强制插入NULL值:

INSERT INTO insurances (zipcode4) VALUES (NULL);

以上是解决该问题的方法,你可以在问题区域运行以下查询来查看正确的输出:

SELECT * FROM insurances;
SHOW CREATE TABLE insurances;

希望这些解决方法能够帮助到你。

0