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

Jak nastavíte výchozí hodnotu pro sloupec Datum a čas MySQL?

DŮLEŽITÁ ÚPRAVA: Toho je nyní možné dosáhnout pomocí polí DATETIME od MySQL 5.6.5 , podívejte se na další příspěvek níže...

Předchozí verze to s DATETIME...

neumí

Ale můžete to udělat pomocí TIMESTAMP:

mysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)

mysql> desc test;
+-------+-------------+------+-----+-------------------+-------+
| Field | Type        | Null | Key | Default           | Extra |
+-------+-------------+------+-----+-------------------+-------+
| str   | varchar(32) | YES  |     | NULL              |       | 
| ts    | timestamp   | NO   |     | CURRENT_TIMESTAMP |       | 
+-------+-------------+------+-----+-------------------+-------+
2 rows in set (0.00 sec)

mysql> insert into test (str) values ("demo");
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+------+---------------------+
| str  | ts                  |
+------+---------------------+
| demo | 2008-10-03 22:59:52 | 
+------+---------------------+
1 row in set (0.00 sec)

mysql>

UPOZORNĚNÍ: Jestliže definujete sloupec se ZAPNUTÝM CURRENT_TIMESTAMP jako výchozím nastavením, budete muset VŽDY zadat hodnotu pro tento sloupec, jinak se při aktualizaci automaticky nastaví na "now()". To znamená, že pokud nechcete, aby se hodnota změnila, váš příkaz UPDATE musí obsahovat "[název vašeho sloupce] =[název vašeho sloupce]" (nebo nějakou jinou hodnotu), jinak se hodnota změní na "now()". Zvláštní, ale pravdivé. Používám 5.5.56-MariaDB



  1. Chyba 404 Nenalezeno s EM 12c

  2. Základy tabulkových výrazů, 2. část – Odvozené tabulky, logické úvahy

  3. Funkce rozdělení v oracle na hodnoty oddělené čárkou s automatickou sekvencí

  4. SQLite JSON()