Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Typ kolumny MySQL TIMESTAMP niejawnie zawiera NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

W MySQL 5.6.5 istnieje kilka aktualizacji dotyczących tej inicjalizacji, możesz zobaczyć na tym link (Automatyczne właściwości znacznika czasu przed MySQL 5.6.5).

Jeśli używasz MySQL <=5.6.5 , aby zignorować tę inicjalizację, musisz ustawić wartość DEFAULT na 0 lub NULL z dozwoloną wartością NULL.

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

Jeśli używasz MySQL>=5.6.6 , istnieje parametr o nazwie explicit_defaults_for_timestamp który jest domyślnie wyłączony. Możesz włączyć to ustawienie lub ustawić wartość DEFAULT na 0 lub NULL, to samo podejście do poprzednich wersji MySQL.

Jeśli używasz MySQL>=8.0.2 , a następnie explicit_defaults_for_timestamp jest włączony domyślnie. To wyłącza niestandardowe zachowanie (na szczęście). Ponadto MySQL generuje ostrzeżenie, gdy wyłączysz to ustawienie. Na przykład, jeśli nie zdefiniujesz wartości DEFAULT dla TIMESTAMP kolumna, jest automatycznie ustawiana na 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. TIMESTAMPDIFF() Przykłady – MySQL

  2. Przetwarzaj JSON do mySQL

  3. Czy w MySQL mogę zwrócić usunięte wiersze po usunięciu?

  4. Web2py – migracja z SQLite do MySQL

  5. Wstaw używając LEFT JOIN i INNER JOIN