nullを指定できるDateフィールドに挿入しようとする挿入文を実行するときにエラーが発生するPHPとMySqlのコードがあります。私はコードが別の環境で動作していると考えています。そのため、環境が異なる可能性があり、MySql Dateフィールドに空の文字列を入れてNULLとして解釈させることができるのだろうかと思っています。日付フィールドの空の文字列をNULLとして解釈するMySQLのグローバル設定?
文字列 "0000-00-00"を使用して自分の環境に挿入できますが、日付列にNULL値が作成されますが、無効です。
「挿入前」トリガーを作成します。トリガーコードで、 'new.date_column_name'が空の文字列と等しいかどうかを検査します(' set new.date_column_name = null; ')。これはデータベースレベルでの迅速な修正です。 0の長さの文字列を 'null 'と解釈するグローバルレベルの設定はありません。もしあれば、それは災害になるだろう。 – Mjh
応答のおかげで、私は既存のデータベース内のテーブルにトリガがあるとは思わない。私は、動作するように見えるデータベースの最新のコピーを持っていて、トリガーが含まれていると信じています。この文が別の環境で動作する可能性があります。 –