web-dev-qa-db-ja.com

現在の時刻をデフォルト値として新しい列を追加する

現在の時刻をデフォルト値としてMySQLテーブルに列を追加する構文を探しています。

5
RedPe4rl

重要な編集:MySQL 5.6.5以降、DATETIMEフィールドでこれを実現できるようになりました。 、以下の 他の投稿 を見てください...

MySQL 5.6.5以降、DATETIMEフィールドでこれを実現できるようになりました。
しかし、TIMESTAMPでそれを行うことができます:

 create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP)
5
Roman Marusyk

default句を指定できます。

ALTER TABLE mytable ADD COLUMN (mytimestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
3
Mureinik

非常に多くの人が解決策を提供しましたが、これは単に情報を追加するためのものです-

行挿入時に現在のタイムスタンプを挿入したいだけの場合-

ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

この行を更新する場合にこの列を更新する必要がある場合は、これを使用します-

ALTER TABLE mytable ADD mytimestampcol TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
3
Zafar Malik

これらのSQLはあなたに役立つと思います。

create table test (column_name varchar(32), time_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

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

mysql> select column_name as name, time_column as ts from  test;
+------+---------------------+
| name | ts                  |
+------+---------------------+
| demo | 2014-07-31 15:42:52 | 
+------+---------------------+

セットの1行(0.00秒)

ありがとうございました。

0
create table test (col1 varchar(10), lastaccessdate TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6));

これにより、時刻が小数秒で更新され、レコードが最後に挿入または更新されたときにも更新されます。

0
Manish Sapkal