私はLinuxシェルコマンドを実行し、コマンドの詳細をSQLデータベースに書き込むいくつかのアプリケーションコードを書いています。これには、STDOUT + STDERR(別途)の出力が含まれます。
コマンドの実行後にプロセスが何も出力しないと仮定すると、STDOUT / STDERRフィールドをNULLにして空の文字列に設定する理由はありますか?
つまり、これら2つの間に技術的な違いはありますか?
- STDOUTに何も出力しないプロセス
- STDOUTに空の文字列(それ以上はありません)を出力するプロセス
また別の方法で質問しましょう。 SQLでこれらの列をNOT NULLにするのは妥当ですか?
ベストアンサー1
パイプ(std-err / out)には空の文字列という概念がなく、単に「出力なし」です。
> printf ''
> printf '' | xxd
nullとは何ですか?
> printf '\0'
> printf '\0' | xxd
00000000: 00
データベースでは、その逆が真であり、少ないほど多いので、スクリプトを自動的に作成し(空の文字列)、データベースを空(空)に設定します。