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

MySQL列タイプTIMESTAMPには、暗黙的にNOT NULL DEFAULT CURRENT_TIMESTAMP ONUPDATECURRENT_TIMESTAMPが含まれます

    MySQLの場合5.6.5 この初期化に関していくつかの更新があります。こので確認できます。リンク (MySQL 5.6.5より前の自動タイムスタンププロパティ)。

    MySQLを使用している場合<=5.6.5 、この初期化を無視するには、DEFAULT値を0またはNULLに設定し、NULLを許可する必要があります。

    CREATE TABLE tbl
    (
        field1 TIMESTAMP DEFAULT 0,
        field2 TIMESTAMP NULL DEFAULT NULL
    )
    

    MySQLを使用している場合>= 5.6.6 explicit_defaults_for_timestamp> これはデフォルトで無効になっています。この設定を有効にするか、DEFAULT値を0またはNULLに設定できます。これは、以前のMySQLバージョンと同じ方法です。

    MySQLを使用している場合>= 8.0.2 次に、 explicit_defaults_for_timestamp 有効 デフォルトでは。これにより、非標準の動作が無効になります(ありがたいことに)。また、この設定を無効にすると、MySQLは警告を生成します。したがって、たとえば、TIMESTAMPのDEFAULT値を定義しない場合 列の場合、自動的にNULLに設定されます 。



    1. 単一のMySQLデータベースへのリモートアクセスを許可する方法

    2. SQL Server:sysテーブルではなくinformation_schemaテーブルを使用する必要がありますか?

    3. MySQLで引用符を含むデータを保存する方法

    4. MySQLまたはPostgreSQLにTEXTフィールドがある場合、それを別のテーブルに配置する必要がありますか?