sql >> Database >  >> RDS >> Mysql

Is het mogelijk om een ​​tijdstempelkolom te definiëren die niet null is en geen standaard en geen speciaal gedrag bij de update heeft?

Tijdstempelkolommen zijn een speciaal geval. Zie hier :Standaard zijn TIMESTAMP-kolommen NIET NULL, kunnen ze geen NULL-waarden bevatten, en door NULL toe te wijzen wordt de huidige tijdstempel toegewezen.

Lees voor meer gedetailleerde informatie Standaardwaarden gegevenstype .

Specifiek is die situatie van toepassing wanneer niet in de strikte modus wordt uitgevoerd. Als het in de strikte modus wordt uitgevoerd, zal het invoegen van een NULL een fout opleveren.

Dit zou ervoor moeten zorgen:

ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;

Als dat niet werkt, moet u de standaardwaarde behouden (gemakkelijk overschreven), maar de ON UPDATE verwijderen:

ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;

Let op de herhaalde kolomnaam.



  1. Hoe een PDO-verbinding correct in te stellen

  2. Param doorgeven aan DB .execute voor WHERE IN... INT list

  3. Mysql-wachtwoord hashmethode oud versus nieuw

  4. Hoe HOUR() werkt in MariaDB