我想在表格的一列中插入null
。
哪一个代表null? undef
或空字符串''
。
应该使用哪一个?为什么?我知道defined
并且我可以查看它。
但我从数据库的角度来看更多。
哪一个更恰当地代表null
?
更新:我正在使用DBI
模块。
答案 0 :(得分:11)
DBI使用undef
来表示SQL NULL
。空字符串表示空字符串。
但是,某些数据库不区分NULL
和空字符串。 Oracle is a particular offender here. DBI无法做任何事情。
答案 1 :(得分:7)
假设Perl DBI,undef
表示SQL NULL
。
Perl中的空字符串表示SQL中的完全相同(即空字符串)。
答案 2 :(得分:4)
假设您正在使用DBI模块,并且正在使用绑定参数(因为如果您手动构建SQL,则在字符串中使用NULL
):
未定义的值或
undef
用于表示NULL值。
如果您没有直接使用DBI(例如,您正在使用DBIx :: Class或其他一些ORM),那么您可能会发现它继承了DBI的行为。