Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es möglich, eine Timestamp-Spalte zu definieren, die nicht null ist und keinen Standardwert und kein besonderes Verhalten beim Update hat?

Timestamp-Spalten sind ein Sonderfall. Siehe hier :Standardmäßig sind TIMESTAMP-Spalten NICHT NULL, können keine NULL-Werte enthalten, und die Zuweisung von NULL weist den aktuellen Zeitstempel zu.

Ausführlichere Informationen finden Sie unter Datentyp-Standardwerte .

Diese Situation gilt insbesondere, wenn nicht im strikten Modus ausgeführt wird. Bei Ausführung im strikten Modus wird das Einfügen von NULL einen Fehler auslösen.

Dies sollte sich darum kümmern:

ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;

Wenn das nicht funktioniert, soll dies den Standardwert (leicht überschreibbar) beibehalten, aber ON UPDATE:

entfernen
ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;

Beachten Sie den wiederholten Spaltennamen.