私は従来のPHPシステムをサポートしています。彼らはデータベースサーバーの移動を計画しています。我々は現在MariaDB 10.1上にあり、新しいサーバもMariaDB 10.1です。私は数百(または多分数千)のようなクエリを持っています:Maria DB 10.1 DATETIMEブランク値
UPDATE ontime_assets
SET AssetName = '117 J19', PlateDate = '20161224', InspectionDate = ''
WHERE AssetID = 7;
これはうまく処理されます。私はこのエラーを取得し、新しいものに:
Error updating record: Incorrect datetime value: '' for column 'InspectionDate' at row 1.
彼らは、データベースが移行されたことを私に伝え、構造的に同一であるが、明らかにそうではありません。 InspectionDate
は必須ではなく、NULL値を受け入れるように設定されているDATETIMEです。
良いコードであるかどうかにかかわらず、空の文字列を取り出すコードの書き換えは実行できません。誰でもMariaDBが設定していることを考えている人はいますか?それはこのクエリが現在動作することを許可しますが、新しいサーバでは別に設定されますか?
フィードバックに感謝します。 sqlはPHPを介して生成され、時にはそこに日付があり、時にはそれが空白であるため、文字列置換よりもずっと多くのコードがあります。しかし、現在の生産システムでは積極的に働いてスカウト栄誉を得ており、両方のフィールドは日時、まったく同じ構造です。 –
私はこれを疑う。 AFAIKでは、空の文字列を 'datetime'カラムに挿入することはできません。これらの元のクエリをチェックして、実際に何が起きているのかを確認する必要があります。 –
こんにちはTim。あなたのポイントを確認していない、私はここにログインしていないと、これは本当に起こっている。ありがとう! –