sql >> Databáze >  >> RDS >> Mysql

Typ sloupce MySQL TIMESTAMP implicitně zahrnuje NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

V MySQL 5.6.5 existuje několik aktualizací týkajících se této inicializace, můžete se podívat na tomto odkaz (Vlastnosti automatického časového razítka před MySQL 5.6.5).

Pokud používáte MySQL <=5.6.5 , abyste ignorovali tuto inicializaci, musíte nastavit DEFAULT hodnotu na 0 nebo NULL s povolenou hodnotou NULL.

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

Pokud používáte MySQL>=5.6.6 , existuje parametr s názvem explicit_defaults_for_timestamp která je ve výchozím nastavení zakázána. Toto nastavení můžete povolit nebo nastavit hodnotu DEFAULT na 0 nebo NULL, stejný přístup jako u předchozích verzí MySQL.

Pokud používáte MySQL>=8.0.2 , pak explicit_defaults_for_timestamp je povoleno ve výchozím stavu. To zakáže nestandardní chování (naštěstí). MySQL také generuje varování, když toto nastavení zakážete. Pokud tedy například nedefinujete hodnotu DEFAULT pro TIMESTAMP sloupec, je automaticky nastaven na NULL .



  1. SCD typ 4

  2. Mysql - Proměnná uložené procedury OUT vrací hodnotu null

  3. Příklady řetězců a čísel Oracle

  4. Algoritmus pro generování náhodného čísla