sql >> Databasteknik >  >> RDS >> Mysql

MySQL kolumntyp TIMESTAMP inkluderar implicit INTE NULL DEFAULT CURRENT_TIMESTAMP ON UPPDATERING CURRENT_TIMESTAMP

I MySQL 5.6.5 det finns flera uppdateringar angående denna initiering, du kan se på denna länk (Automatiska tidsstämpelegenskaper före MySQL 5.6.5).

Om du använder MySQL <=5.6.5 , för att ignorera denna initiering måste du ställa in DEFAULT-värdet till 0 eller NULL med NULL tillåtet.

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

Om du använder MySQL>=5.6.6 , det finns en parameter som heter explicit_defaults_for_timestamp som är inaktiverat som standard. Du kan aktivera den här inställningen eller ställa in DEFAULT-värdet till 0 eller NULL, samma metod för tidigare MySQL-versioner.

Om du använder MySQL>=8.0.2 , sedan explicit_defaults_for_timestamp är aktiverad som standard. Detta inaktiverar det icke-standardiserade beteendet (tack och lov). MySQL genererar också en varning när du inaktiverar den här inställningen. Så, till exempel, om du inte definierar DEFAULT-värde för en TIMESTAMP kolumnen ställs den automatiskt in på NULL .



  1. Hur ändrar jag alla tomma strängar till NULL i en tabell?

  2. Python MySQLdb undantag

  3. Hur man delar skrivskyddade och läs-skrivtransaktioner med JPA och Hibernate

  4. Hur hittar man saknade rader (datum) i en mysql-tabell?