先抛出一个问题:如果我们创建一个文章中,表中有一个字段表示文章的发布时间,这个时间有一个默认值,这个值就是插入这条记录的时间。如何实现呢?

其实在创建数据库表时,我们经常需要创建类似的字段。现在我们来分析一下如何创建这个字段。

1、MySQL中有一个时间函数now(),它表示当前时间。

2、MySQL创建字段或修改字段时,可以使用default这个关键词来表示默认值。

好了,有了以上两点基础,我们就可以创建一个默认值为当前时间的字段了。

mysql> create table test(

    -> test_info varchar(20),

    -> test_time datetime not null default now()

    -> );

Query OK, 0 rows affected (0.09 sec)

执行成功,我们看看表结构:

mysql> describe test;

+-----------+-------------+------+-----+-------------------+-------+

| Field     | Type        | Null | Key | Default           | Extra |

+-----------+-------------+------+-----+-------------------+-------+

| test_info | varchar(20) | YES  |     | NULL              |       |

| test_time | datetime    | NO   |     | CURRENT_TIMESTAMP |       |

+-----------+-------------+------+-----+-------------------+-------+

2 rows in set (0.03 sec)

表结构也没有问题,我们尝试插入两条数据看看:

mysql> insert into test(test_info) values('hi');

Query OK, 1 row affected (0.34 sec)

mysql> insert into test(test_info) values('hello');

Query OK, 1 row affected (0.03 sec)

mysql> select * from test;

+-----------+---------------------+

| test_info | test_time           |

+-----------+---------------------+

| hi        | 2013-10-10 14:41:26 |

| hello     | 2013-10-10 14:41:31 |

+-----------+---------------------+

2 rows in set (0.02 sec)

从最终的结果来看,Perfect!test_time字段,我们根本就没有插入值,系统为它自动生成了一个当时时间,这就是我们要的结果。

关于MySQL创建一个默认值为当前时间的字段,本文就介绍这么多,希望对大家有所帮助,谢谢!

03-14 19:04