在mySQL中允许浮点值为空值

在mySQL中允许浮点值为空值,mysql,null,geocoding,Mysql,Null,Geocoding,我的地理编码脚本有问题,它在mySQL数据库中插入空值并破坏我的脚本,因为我的coord\u lat列不能为空。当我查看我的结构时,它告诉我允许空值。有谁能给我一个关于如何解决这个问题的建议吗?谢谢 您可以使用alter table修改列: alter table modify coord_lat float not null; 但是,该列被显式声明为notnull,因此我不知道这是否是一个好主意。我想更大的问题是,为什么要插入没有此信息的行。您可以使用alter table修改列: alt

我的地理编码脚本有问题,它在mySQL数据库中插入空值并破坏我的脚本,因为我的
coord\u lat列不能为空。当我查看我的结构时,它告诉我允许空值。有谁能给我一个关于如何解决这个问题的建议吗?谢谢


您可以使用
alter table
修改列:

alter table modify coord_lat float not null;

但是,该列被显式声明为
notnull
,因此我不知道这是否是一个好主意。我想更大的问题是,为什么要插入没有此信息的行。

您可以使用
alter table
修改列:

alter table modify coord_lat float not null;

但是,该列被显式声明为
notnull
,因此我不知道这是否是一个好主意。我想更大的问题是,为什么要插入没有此信息的行。

检查是否有包含此列的索引,这些索引也可以强制列为非空。(注意:可以是简单的,也可以是复合的。)

检查是否有包含此列的索引,这些索引也可以强制列为非空。(注意:可以是简单的,也可以是复合的。)

值得注意的是,您必须明确指定希望字段为空。浮点值的默认值始终为0.00(小数位数与字段相同)

如果你不考虑lat和lng

INSERT into GEO (city) VALUES ('london');
那么lat和lng将为0.00000


我通常将lat/lng值存储为字符串,因为在需要时将其转换为float是一件简单的事情。

值得注意的是,您必须明确指定希望字段为null。浮点值的默认值始终为0.00(小数位数与字段相同)

如果你不考虑lat和lng

INSERT into GEO (city) VALUES ('london');
那么lat和lng将为0.00000



我通常将lat/lng值存储为字符串,因为在需要时将其转换为float是一件简单的事情。

当您声明列时,请删除
not null
。根据该屏幕截图,它已经不是null了。就是这样。它说notnull,但我的脚本告诉我coord_lat列不能为null,这很奇怪。你在看同一个数据库/模式吗?还是同一张桌子?如果是这样,则不应引发该错误。该表上是否有任何触发器尝试插入/更新到另一个表中,但该触发器具有约束?当您声明列时,请删除
not null
。根据该屏幕截图,它已经不是null。这就是问题所在。它说notnull,但我的脚本告诉我coord_lat列不能为null,这很奇怪。你在看同一个数据库/模式吗?还是同一张桌子?如果是这样,则不应引发该错误。该表上是否有任何触发器尝试插入/更新到另一个具有约束的表中?这不会打断我的现有记录?我只是想再核实一下,谢谢!不会的。但在做出任何改变之前,确保你有一个最新的备份并不是一个可怕的习惯。这与OPs发布的“当前计划”相矛盾。。有点不对劲。谢谢你的帮助!这是另一个不允许空值的表。这不会破坏我现有的记录,对吗?我只是想再核实一下,谢谢!不会的。但在做出任何改变之前,确保你有一个最新的备份并不是一个可怕的习惯。这与OPs发布的“当前计划”相矛盾。。有点不对劲。谢谢你的帮助!这是另一个不允许空值的表。感谢您的帮助!谢谢你的帮助!