sql >> データベース >  >> RDS >> Mysql

nullではなく、デフォルトがなく、更新時に特別な動作がないタイムスタンプ列を定義することは可能ですか?

    タイムスタンプ列は特殊なケースです。 こちら を参照してください。 :デフォルトでは、TIMESTAMP列はNOT NULLであり、NULL値を含めることはできません。また、NULLを割り当てると、現在のタイムスタンプが割り当てられます。

    詳細については、データ型のデフォルト値を参照してください。

    特に、この状況は、厳密モードで実行されていない場合に当てはまります。ストリクトモードで実行している場合、NULLを挿入するとエラーがスローされます。

    これで問題は解決します:

    ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;
    

    それが機能しない場合、これを行うとデフォルト(簡単に上書きされます)が残りますが、ON UPDATEを削除します:

    ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;
    

    繰り返される列名に注意してください。



    1. Docker上でMySQLGaleraクラスター用にProxySQL2.0を実行および構成する方法

    2. エラーコード:1136列数が行1)の値数と一致しませんsp内

    3. MySQL日時列のデフォルト値をどのように設定しますか?

    4. エラーコード:1215。外部キー制約を追加できません(外部キー)