Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL тип колона TIMESTAMP имплицитно включва NOT NULL DEFAULT CURRENT_TIMESTAMP ПРИ АКТУАЛИЗИРАНЕ CURRENT_TIMESTAMP

В MySQL 5.6.5 има няколко актуализации относно тази инициализация, можете да видите на този връзка (Автоматични свойства на клеймото за време преди MySQL 5.6.5).

Ако използвате MySQL <=5.6.5 , за да игнорирате тази инициализация, трябва да зададете стойността ПО ПОДРАЗБИРАНЕ на 0 или NULL с разрешено NULL.

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

Ако използвате MySQL>=5.6.6 , има параметър, наречен explicit_defaults_for_timestamp който е деактивиран по подразбиране. Можете да активирате тази настройка или да зададете стойността ПО ПОДРАЗБИРАНЕ на 0 или NULL, същият подход за предишни версии на MySQL.

Ако използвате MySQL>=8.0.2 , след това explicit_defaults_for_timestamp еактивиран по подразбиране. Това деактивира нестандартното поведение (за щастие). Също така, MySQL генерира предупреждение, когато деактивирате тази настройка. Така че, например, ако не дефинирате стойност по ПОДРАЗБИРАНЕ за TIMESTAMP колона, той автоматично се задава на NULL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите най-новите 2 артикула на категория в един избор (с mysql)

  2. PHP PDO - брой редове

  3. Защо 2 реда са засегнати в моя „INSERT ... ON DUPLICATE KEY UPDATE“?

  4. Как да се присъедините към MySQL и Postgres в материализиран изглед на живо

  5. MySQL заявка с брой и групиране по