SQLで修正できない愚かな問題が発生しました。
ALTER TABLE `ニュース` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT、 主キーを追加( `dateAdded`)
エラー:
(#1067)Invalid default value for 'dateAdded'
誰かが私を助けてくれますか?
SQLで修正できない愚かな問題が発生しました。
ALTER TABLE `ニュース` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT、 主キーを追加( `dateAdded`)
エラー:
(#1067)Invalid default value for 'dateAdded'
誰かが私を助けてくれますか?
回答:
CURRENT_TIMESTAMPTIMESTAMPフィールドでのみ使用できます。DATETIMEフィールドはnullのデフォルト値のままにするか、デフォルト値をまったく残さないようにする必要があります。デフォルト値は、式の結果ではなく定数値でなければなりません。
関連ドキュメント:http : //dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
これを回避するには、テーブルに挿入後トリガーを設定して、新しいレコードの「現在」の値を入力します。
CURRENT_TIMESTAMPバージョン固有でありDATETIME、バージョン5.6 から列に使用できるようになりました。
MySQLのドキュメントを参照してください。
また、MySQL 5.7.xでDATETIMEas DATETIME(3)またはlikeを指定する場合は、にも同じ値を追加する必要があることに注意してくださいCURRENT_TIMESTAMP(3)。そうでない場合は、「無効なデフォルト値」をスローし続けます。
LEMPとCURRENT_TIMESTAMPにmysqlバージョン5.6.27があり、デフォルト値が正常に機能します。
タイプを日時からタイムスタンプに変更してください。mysql 5.5.56-MariaDB-MariaDBサーバーで同じ問題が発生しました
AUTO_INCREMENTDATETIMEですか?