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

フィールドのデフォルト値を「0000-00-0000:00:00」に設定するにはどうすればよいですか?

    エラーの原因:SQLモード

    DATEのデフォルト値を設定できます 、DATETIME またはTIMESTAMP SQLモードで許可されている場合は、フィールドをダミーの日付として「0000-00-00」の特別な「ゼロ」値に設定します。 5.7.4より前のMySQLバージョンの場合、これはNO_ZERO_DATEモードによって支配されます。ドキュメント :

    さらに、「ゼロ」値を禁止するには、厳密モードを有効にする必要があります。

    MySQL5.7.4<現在/ a> これは厳密モードにのみ依存します:

    バージョンとSQLモードを確認する

    したがって、MySQLのバージョンとSQLモード<を確認する必要があります。 / a> MySQLサーバーの

    SELECT version();
    SELECT @@GLOBAL.sql_mode global, @@SESSION.sql_mode session
    

    INSERTを有効にする

    SET sql_mode = '<desired mode>'を使用して、セッションのsql_modeを設定できます。

    SET sql_mode = 'STRICT_TRANS_TABLES';   
    

    DATETIMEの有効な範囲

    DATETIMEでサポートされている範囲

    です
    [1000-01-01 00:00:00] to ['9999-12-31 23:59:59'], 
    

    したがって、有効なDATETIMEの最小値は「1000-01-0100:00:00」です。
    ただし、この値を使用することはお勧めしません。

    追記

    MySQL 5.6.5以降、すべてのTIMESTAMP およびDATETIME 列は、TIMESTAMPだけでなく、魔法の動作(初期化および/または更新)を持つことができます。 最大で1つの列のみ。自動初期化と更新を参照してください。タイムスタンプと日時

    MySQL 5.6.5以降の場合、CREATETABLEステートメントを次のように変更できます。

    CREATE TABLE IF NOT EXISTS `article` (
      `article_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `url` VARCHAR(255) NOT NULL,
      `title` VARCHAR(255) NOT NULL,
      `date_from` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Set the article as new or featured from a datetime.',
      `date_to` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Set the article as new or featured to a datetime.',
      `backdated_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'The manual datetime that is modified or input by the user.',
      `created_on` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'The permanent datetime when the article is created.',
      `updated_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'The datetime when the article is updated on.',
      PRIMARY KEY (`article_id`, `parent_id`, `template_id`),
      UNIQUE INDEX `url_UNIQUE` (`url` ASC))
    ENGINE = MyISAM
    AUTO_INCREMENT = 66
    COMMENT = 'Entity that holds the article with one-to-one properties.';
    


    1. Spring JpaRepositoryで疑問符(?)文字をエスケープする方法

    2. to_char()がPostgreSQLでどのように機能するか

    3. 認証方法'caching_sha2_password'は、使用可能なプラグインのいずれでもサポートされていません

    4. バグ? #1146-テーブル'xxx.xxxxx'は存在しません