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

Er det muligt at definere en tidsstempelkolonne, der ikke er null og ikke har nogen standard og ingen speciel adfærd ved opdatering?

Tidsstempelkolonner er et specialtilfælde. Se her :Som standard er TIMESTAMP-kolonner IKKE NULL, kan ikke indeholde NULL-værdier, og tildeling af NULL tildeler det aktuelle tidsstempel.

For mere detaljeret information læs op på Data Type Standardværdier .

Specifikt gælder denne situation, når den ikke kører i streng tilstand. Hvis du kører i streng tilstand, vil indsættelse af en NULL give en fejl.

Dette burde tage sig af det:

ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;

Hvis det ikke virker, er det meningen, at du skal have standarden (let overskrevet), men fjern ON UPDATE:

ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;

Bemærk det gentagne kolonnenavn.



  1. Sådan fungerer SCHEMA_NAME() i SQL Server

  2. MySQL 8.0 - Klienten understøtter ikke godkendelsesprotokol anmodet af serveren; overveje at opgradere MySQL-klienten

  3. MySQL MariaDB – Forespørgsel ved hjælp af Temp-tabel

  4. Hvordan skriver man IF ELSE-sætning i en MySQL-forespørgsel