sql >> Database >  >> RDS >> Mysql

MySQL-kolomtype TIMESTAMP bevat impliciet NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

In MySQL 5.6.5 er zijn verschillende updates met betrekking tot deze initialisatie, die u kunt zien op deze link (Automatische tijdstempeleigenschappen vóór MySQL 5.6.5).

Als u MySQL <=5.6.5 gebruikt , om deze initialisatie te negeren, moet u de DEFAULT-waarde instellen op 0 of NULL met NULL toegestaan.

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

Als u MySQL>=5.6.6 gebruikt , er is een parameter genaamd explicit_defaults_for_timestamp die standaard is uitgeschakeld. U kunt deze instelling inschakelen of de DEFAULT-waarde instellen op 0 of NULL, dezelfde benadering voor eerdere MySQL-versies.

Als u MySQL gebruikt>=8.0.2 , dan explicit_defaults_for_timestamp is ingeschakeld standaard. Dit schakelt het niet-standaard gedrag (gelukkig) uit. MySQL genereert ook een waarschuwing wanneer u deze instelling uitschakelt. Dus, bijvoorbeeld, als u geen DEFAULT-waarde definieert voor een TIMESTAMP kolom, wordt deze automatisch ingesteld op NULL .



  1. Hoe 1 optellen bij de waarde van een kolom van een bestaande rij in mysql

  2. Oracle:meerdere tabelupdates => ORA-01779:kan geen kolom wijzigen die is toegewezen aan een niet-sleutelbewaarde tabel

  3. MYSQL telling van telling?

  4. Jokertekens in kolomnaam voor MySQL