sql >> Databáze >  >> RDS >> Mysql

Je možné definovat sloupec časového razítka, který není null a nemá žádné výchozí a žádné zvláštní chování při aktualizaci?

Zvláštním případem jsou sloupce časových razítek. Viz zde :Ve výchozím nastavení NEJSOU sloupce TIMESTAMP NULL, nemohou obsahovat hodnoty NULL a přiřazení NULL přiřadí aktuální časové razítko.

Podrobnější informace najdete na Výchozí hodnoty datových typů .

Konkrétně tato situace platí, když neběží v přísném režimu. Pokud běží v přísném režimu, vložení NULL vyvolá chybu.

Toto by se o to mělo postarat:

ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;

Pokud to nefunguje, mělo by vám to ponechat výchozí (snadno přepsatelné), ale odstranit ON UPDATE:

ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;

Všimněte si opakovaného názvu sloupce.



  1. Výběr N řádků v SQL Server

  2. Obnova souborů editoru SQL (dotazy, procedury) po ropuchu pro selhání nebo zablokování Oracle

  3. Offset řádků v SQL Server

  4. Přečtěte si pole JSON v MYSQL