9

我想null在表格的列中插入。

哪一个代表空?undef或空字符串''

应该使用哪一个,为什么?我知道defined并且我可以检查它。

但我更多的是从数据库的角度来看。

哪一个代表null更恰当?

更新:我正在使用DBI模块。

4

3 回答 3

14

DBI 用于undef表示 SQL NULL。空字符串表示一个空字符串。

但是,有些数据库不区分NULL空字符串和空字符串。 甲骨文在这里是一个特别的罪犯。 DBI 对此无能为力。

于 2012-10-03T14:15:44.477 回答
8

假设 Perl DBI,undef代表一个 SQL NULL

Perl 中的空字符串在 SQL 中表示完全相同(即空字符串)。

于 2012-10-03T12:40:05.020 回答
4

假设您正在使用 DBI 模块,并且正在使用绑定参数(因为如果您手动构建 SQL,您将NULL在字符串中使用):

未定义的值或undef用于指示 NULL 值。

请参阅DBI 的 perldoc

如果您没有直接使用 DBI(例如,您使用的是 DBIx::Class 或其他 ORM),那么您可能会发现它为此继承了 DBI 的行为。

于 2012-10-03T12:41:40.620 回答