sql >> Database teknologi >  >> RDS >> Mysql

MySQL kolonnetype TIMESTAMP inkluderer implicit IKKE NULL STANDARD CURRENT_TIMESTAMP VED OPDATERING CURRENT_TIMESTAMP

I MySQL 5.6.5 der er flere opdateringer vedrørende denne initialisering, du kan se på denne link (Automatiske tidsstempelegenskaber før MySQL 5.6.5).

Hvis du bruger MySQL <=5.6.5 , for at ignorere denne initialisering skal du indstille DEFAULT-værdien til 0 eller NULL med NULL tilladt.

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

Hvis du bruger MySQL>=5.6.6 , der er parameter kaldet explicit_defaults_for_timestamp som er deaktiveret som standard. Du kan aktivere denne indstilling eller indstille STANDARD-værdien til 0 eller NULL, samme tilgang til tidligere MySQL-versioner.

Hvis du bruger MySQL>=8.0.2 , derefter explicit_defaults_for_timestamp er aktiveret som standard. Dette deaktiverer den ikke-standardiserede adfærd (heldigvis). MySQL genererer også en advarsel, når du deaktiverer denne indstilling. Så hvis du for eksempel ikke definerer DEFAULT-værdi for en TIMESTAMP kolonne, indstilles den automatisk til NULL .



  1. MySQL-tabelpartition efter måned

  2. Mysql-funktion, der returnerer en værdi fra en forespørgsel

  3. Konfiguration af Spring boot Docker og Mysql

  4. At komme rundt i MySQL Kan ikke genåbne tabelfejl