null
テーブルの列に挿入したい。
nullを表すのはどれ? undef
または空の文字列''
。
どちらを使用する必要があり、その理由は? 私はそれについて知ってdefined
おり、それを確認することができます。
しかし、私はデータベースの観点からもっと見ています。
どちらがnull
より適切に表されますか?
更新:DBI
モジュールを使用しています。
DBI はundef
SQL を表すために使用しますNULL
。空の文字列は、空の文字列を表します。
ただし、一部のデータベースNULL
では、 と空の文字列を 区別しません。オラクルはここで特に犯罪者です。 DBI はそれについて何もできません。
Perl DBI を仮定すると、undef
は SQL を表しますNULL
。
Perl の空の文字列は、SQL の場合とまったく同じ (つまり、空の文字列) を表します。
DBI モジュールを使用していて、バインドされた引数を使用していると仮定します (手動で SQL を作成している場合NULL
は、文字列で使用するため):
未定義の値または
undef
は、NULL 値を示すために使用されます。
DBI については perldoc を参照してください
DBI を直接使用していない場合 (例えば、DBIx::Class やその他の ORM を使用している場合)、DBI の動作を継承していることに気付くでしょう。