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

Dotaz se dvěma časovými razítky nefunguje

TIMESTAMP je ve skutečnosti podobný DATETIME, ale první TIMESTAMP, které deklarujete, získá automatickou inicializaci:

http://dev.mysql.com/doc/refman /5.0/en/timestamp-initialization.html

Když tedy poprvé zapíšete TIMESTAMP bez atributů, MySQL jej interně převede přidáním „DEFAULT CURRENT_TIMESTAMP“. Když MySQL narazí na druhý TIMESTAMP, kde jste explicitně nastavili CURRENT_TIMESTAMP, dostane se do konfliktu.

Pokud však definujete CURRENT_TIMESTAMP v prvním řádku, pak je to nadbytečné – a protože ve druhém nic neuvedete, druhému se nepřiřadí žádná výchozí hodnota a nedojde ke konfliktu.

Z výše uvedeného odkazu:"Nemusí to být první sloupec TIMESTAMP v tabulce, který je automaticky inicializován nebo aktualizován na aktuální časové razítko. Chcete-li však zadat automatickou inicializaci nebo aktualizaci pro jiný sloupec TIMESTAMP, musíte potlačit automatické vlastnosti pro první."




  1. 4 způsoby, jak změnit časové pásmo v Oracle

  2. MySQL v docker-compose -- přístup odepřen

  3. Mysql vyberte dotaz s více podmínkami stejného sloupce

  4. hotelový rezervační systém SQL:identifikujte jakýkoli volný pokoj v časovém rozmezí