当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql 设置默认的时间值

MYSQL
MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)
MySQL索引经验之浅见
提高MySQL 查询效率的三个技巧(1)
提高MySQL 查询效率的三个技巧(2)
提高MySQL 查询效率的三个技巧(3)
MySQL中的mysqldump命令使用详解
Linux下mysql的C API简单使用
MYSQL 有条件地插入记录
mysql 注释方法
MySQL备份--使用mysqldump全备
Mysql索引
5种方法优化MySQL插入表格查询
java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
mysql中root用户的密码修改和消除
完全优化MySQL数据库性能的八大巧方法
MySQL与标准的兼容性
优化MYSQL服务器
MYSQL 权限
Mysql 基本用法
Mysql 备份与恢复

MYSQL 中的 mysql 设置默认的时间值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 139 ::
收藏到网摘: n/a

由于MySQL目前字段的默认值不支持函数 所以以
复制代码 代码如下:

create_time datetime default now()

的形式设置默认值是不可能的。
代替的方案是使用TIMESTAMP类型代替DATETIME类型。
CURRENT_TIMESTAMP :当我更新这条记录的时候,这条记录的这个字段不会改变。
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP :当我更新这条记录的时候,这条记录的这个字段将会改变。即时间变为了更新时候的时间。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)如果有多个TIMESTAMP列,只有第一个自动更新。
TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。
如果有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
你明确地设定TIMESTAMP列为NULL.
除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
另外在5.0以上版本中也可以使用trigger来实现此功能。
复制代码 代码如下:

create table test_time (
id int(11),
create_time datetime
);
delimiter |
create trigger default_datetime before insert on test_time
for each row
if new.create_time is null then
set new.create_time = now();
end if;|
delimiter ;