mysql中不为NULL接受空字符串
我有两张桌子。 一个使用int作为主键,另一个使用varchar主键 当插入空字符串(“”)时,我得到int的编程错误,但成功地存储了varchar。 这是怎么回事 有没有办法使varchar字段不接受空字符串?mysql中不为NULL接受空字符串,mysql,Mysql,我有两张桌子。 一个使用int作为主键,另一个使用varchar主键 当插入空字符串(“”)时,我得到int的编程错误,但成功地存储了varchar。 这是怎么回事 有没有办法使varchar字段不接受空字符串? 我希望他们给出一些我能捕捉到的数据库错误 空字符串与null不同。(在MySQL和许多编程语言中也是如此。)尝试在varchar的主键中插入null。它应该在插入时失败-就像int一样 正如上面@David所说,空字符串不能转换为int,因此MySQL选择null 空字符串与null不
我希望他们给出一些我能捕捉到的数据库错误 空字符串与null不同。(在MySQL和许多编程语言中也是如此。)尝试在varchar的主键中插入null。它应该在插入时失败-就像int一样
正如上面@David所说,空字符串不能转换为int,因此MySQL选择null 空字符串与null不同。(在MySQL和许多编程语言中也是如此。)尝试在varchar的主键中插入null。它应该在插入时失败-就像int一样 正如上面@David所说,空字符串不能转换为int,因此MySQL选择null 当插入空字符串(“”)时,我得到int的编程错误 因为字符串不是
int
。而且无法自动将非数字字符串转换为int
但是成功地存储了varchar
因为字符串是varchar
。像这样的列用于存储字符数据,这就是字符串
这些值都不是空的NULL
表示没有值。空字符串仍然是一个值
当插入空字符串(“”)时,我得到int的编程错误
因为字符串不是int
。而且无法自动将非数字字符串转换为int
但是成功地存储了varchar
因为字符串是varchar
。像这样的列用于存储字符数据,这就是字符串
这些值都不是空的
NULL
表示没有值。空字符串仍然是一个值。不确定您要做什么,我们需要查看代码以了解解决此问题的最佳方法,但您可以尝试以下方法:
CASE WHEN IN_IntValue = '' THEN NULL ELSE IN_IntValue
一般来说,据我所知,只有Oracle将空字符串视为NULL。在MySQL中,它们是两种不同的东西。不确定您想做什么,我们需要查看代码以了解解决此问题的最佳方法,但您可以尝试以下方法:
CASE WHEN IN_IntValue = '' THEN NULL ELSE IN_IntValue
一般来说,据我所知,只有Oracle将空字符串视为NULL。在MySQL中,它们是两种不同的东西。根据ANSI的定义,在几乎所有数据库中,空字符串都不是空的
Oracle碰巧将空字符串视为
NULL
值,这通常相当令人困惑。但这是SQL语言的一个例外。根据ANSI的定义,在几乎所有数据库中,空字符串都不是NULL
Oracle碰巧将空字符串视为
NULL
值,这通常相当令人困惑。但这是SQL语言的一个例外。因为空字符串不是整数。所以空字符串是varchar?是的varchar
表示可变长度字符数据。这是一个完全不同的问题,但通常使用trigger
s验证字段。@shadow0359:看起来已经有了答案:因为空字符串不是整数。那么空字符串是varchar?是的varchar
表示可变长度字符数据。这是一个完全不同的问题,但通常使用trigger
s验证字段。@shadow0359:看起来已经有了答案: