2 つのタイムスタンプ フィールドを持つテーブルがあります。名前とタイプTIMESTAMP
で定義しただけですが、何らかの理由で、MySQL はそれらの 1 つにデフォルト値と属性を自動的に設定しますon update CURRENT_TIMESTAMP
。どちらのフィールドにもデフォルト値を持たないように計画していましたが、フィールドの 1 つが「date_updated」と呼ばれているため、前述の属性をそのフィールドに設定できると思います。
残念ながら、属性で設定されたのは「date_created」フィールドでon update CURRENT_TIMESTAMP
あり、何をしても MySQL はそれを削除できません。
「date_created」フィールドを編集して、属性を削除しようとしました。保存をクリックすると、属性が元に戻ります。また、両方のフィールドを選択して、一方から属性を削除し、もう一方に設定しようとしました。エラーが発生#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
し、値の両方の属性列が突然on update CURRENT_TIMESTAMP
結果に設定されます。
Error
SQL query:
ALTER TABLE `pages` CHANGE `date_created` `date_created` TIMESTAMP NOT NULL ,
CHANGE `date_updated` `date_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
MySQL said:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
これを修正するには、両方の列を正しい順序で再作成する必要がありますか?
今後の参考のために、この問題を正しく解決する方法を知りたいです。
ありがとう
今、私も実行しようとしました
ALTER TABLE pages
CHANGE date_created
date_created TIMESTAMP NOT NULL