先抛出一个问题:如果我们创建一个文章中,表中有一个字段表示文章的发布时间,这个时间有一个默认值,这个值就是插入这条记录的时间。如何实现呢?
其实在创建数据库表时,我们经常需要创建类似的字段。现在我们来分析一下如何创建这个字段。
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创建一个默认值为当前时间的字段,本文就介绍这么多,希望对大家有所帮助,谢谢!