欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL表字段设置默认值(图文教程及注意细节)

程序员文章站 2024-03-31 10:52:22
环境 mysql 5.1 + 命令行工具 问题 mysql表字段设置默认值 解决 复制代码 代码如下: --sql: create table test( i_a int...
环境
mysql 5.1 + 命令行工具
问题
mysql表字段设置默认值
解决
复制代码 代码如下:

--sql:
create table test(
i_a int not null default 1,
ts_b timestamp not null default now(),
c_c char(2) not null default '1'
);
--以下sql不合法
--time_d time not null default curtime(),
--date_e date not null default curdate(),
--datetime_f datetime not null default now(),

MySQL表字段设置默认值(图文教程及注意细节) 
总结
int类型:默认值也得是整型,并且default后边不要()括号。
char类型:默认值使用单引号。

datetime类型:now()函数以'yyyy-mm-dd hh:mm:ss'返回当前的日期时间,可以直接存到datetime字段中。不支持使用系统默认值。

date类型:curdate()以'yyyy-mm-dd'的格式返回今天的日期,可以直接存到date字段中。不支持使用系统默认值。

time类型:curtime()以'hh:mm:ss'的格式返回当前的时间,可以直接存到time字段中。不支持使用系统默认值。
参考资料
mysql表字段默认值
用sql语句创建表时,给表字段默认值出错。
比如:mssql中
复制代码 代码如下:

create table dnt_forums(
aa int not null default (''),
bb date not null default (getdate()),
cc char(50) not null default (null)
}

请问上述的sql语句要如何修改在mysql中才能使用

aa 是 int 类型,默认值也得是整型,并且default后边不要()括号
bb date类型不支持使用系统默认值,改成timestamp,能过now()取系统时间
cc 已经不允许为空(not null)所以不能默认为 null ,可以改成空字符串
复制代码 代码如下:

create table dnt_forums(
aa int not null default 2,
bb timestamp not null default now(),
cc char(50) not null default ''
);

mysql获取系统当前时间的函数