如何设置MySQL日期时间列的默认值?

如何设置MySQL日期时间列的默认值

在SQL Server中,它是getdate()。MySQL的等价物是什么?如果这是一个因素的话,我使用的是MySQL 5.x

重要编辑:
现在可以通过DATETIME字段实现这一点,因为MySQL 5.6.5,请看下面的另一篇文章

以前的版本无法使用DATETIME执行此操作

但您可以使用时间戳来完成:

mysql>创建表测试(str varchar(32),ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
查询正常,0行受影响(0.00秒)
mysql>desc试验;
+-------+-------------+------+-----+-------------------+-------+
|字段|类型|空|键|默认|额外|
+-------+-------------+------+-----+-------------------+-------+
|str | varchar(32)| YES | | | NULL | |
|ts |时间戳|否| |当前| U时间戳|
+-------+-------------+------+-----+-------------------+-------+
一组2行(0.00秒)
mysql>插入测试(str)值(“演示”);
查询正常,1行受影响(0.00秒)
mysql>从测试中选择*;
+------+---------------------+
|str|ts|
+------+---------------------+
|演示| 2008-10-03 22:59:52 |
+------+---------------------+
一行一组(0.00秒)
mysql>

注意事项:如果您定义的列的默认时间戳为“开”,则需要始终为此列指定一个值,否则该值将自动重置为“开”;现在();正在更新。这意味着,如果不希望更改值,UPDATE语句必须包含;[您的列名]=[您的列名]”;(或某些其他值)或该值将变为;现在();。奇怪,但却是真的。我正在使用5.5.56-MariaDB

发表评论