mysql 中怎么设置默认值为系统日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 中怎么设置默认值为系统日期相关的知识,希望对你有一定的参考价值。

-- 方法一:
由于mysql目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。
TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
1.列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
2.列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
3.你明确地设定TIMESTAMP列为NULL.
4.除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
所以把日期类型 选择成timestamp 允许空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的话,将字段设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可
参考技术A dt timestamp default current_timestamp

mysql默认值问题(高分!!!)

我用这个语句
alter table 表名 modify 字段 类型 default 默认值;

修改一个表的默认值,但是表中已经存在的数据的这个字段也修改为了这个值了。
但我用Navicat,设计表里修改默认值,表中已存在的数值就不会表。
这个为什么啊??
我想用语句实现navicat的这个功能;怎么写啊。
是会修改啊。今天我又试下了,的却是会修改,我用的是Navicat!!!
为什么呀,我快疯掉了。是不是mysql的BUG啊。

默认的意思就是在对表中的设置了默认值的列不插入数据时显示的值,比如说表中两列id、name,name的默认是是张三,当你插入数据时比如这样:insert into table (id) values (1);并未对name赋值,那么表中的记录就是1,张三;
你只是修改该列的默认值,并不能修改已经存在的记录值的,若要修改需这样:
update 表名 set 字段='新值' where 字段='旧值'

我已经测试过alter table 表名 modify 字段 类型 default 默认值;
这样并不能修改已经保存在数据库中的原有记录

以上,希望对你有所帮助!
参考技术A 用什么工具阿,直接写语句,语句才是万能的

你自己写的语句就是正确的

alter table tablename modify colum char/varchar/int/ default '值' ;
参考技术B

我实验了下,用语句修改不会变的,不知道你的怎么会变

以上是关于mysql 中怎么设置默认值为系统日期的主要内容,如果未能解决你的问题,请参考以下文章

在页面初始化时候 jquery easyui datebox 怎么设置默认值为当前系统日期

MYSQL数据库默认时间该怎么设置

ASP SQL中,查询条件为日期字段的一个时间段,或者日期字段为空,怎么写查询

dateTimePicker怎么设置为当前日期

Linq中,怎么写日期类型字段的Where条件语句

找到数据库中所有默认为0的字段,然后将默认值改为null,这个mysql语句该怎么写?