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

环境
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(),

 
总结
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获取系统当前时间的函数
http://www.jb51.net/article/29124.htm

时间: 2024-10-25 23:45:27

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

MySQL表字段设置默认值

环境 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 DEFA

mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况??

问题描述 mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况?? 如题,我的表结构是这样的 SQL语句:INSERT INTO test (name) VALUES ('lsq2') 求大神帮忙!! 解决方案 后面的图片上错了, 解决方案二: 楼主你替数据库想想,又不能为null,又得是int类型,还能怎么办,数据库只能补个0. 解决方案三: 我以为是会报错,这是我本地测试的 没有报错我在正式服务器上试了报错了,说字段没有默认值.

Mysql select语句设置默认值的方法_Mysql

1.在没有设置默认值的情况下: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果: 设置显示默认值: 复制代码 代码如下: SELECT userinfo.id, user_name, role, adm_regionid, IFNUL

表字段设置允许为空,默认值0,保保存是如果不给这个字段赋值会出错?

问题描述 表字段设置允许为空,默认值0,保保存是如果不给这个字段赋值会出错?有什么方法在EF中给这个字段赋值不会出错 解决方案 解决方案二:你说的什么鬼?允许为空,默认值是0,那么不给这个字段赋值就会自动默认为0啊,有什么问题解决方案三:如果不赋傎它为NULL而不是0呢解决方案四:引用2楼OldEagle33032的回复: 如果不赋傎它为NULL而不是0呢 你说的是C#代码里面的null吧,插入数据库不能是null,C#代码里面的null要先转成dbnull.value,然后插入反之一样,取出来

MySQL所支持的数据类型与表字段约束类型的学习教程_Mysql

MySQL 数据(字段)类型在创建表的时候,要明确定义字段对应的数据类型.MySQL 主要的数据类型分为数值类型.字符串(文本)类型.时间日期类型和其他类型几类. 数值类型 数值类型说明: 补充说明 在 int(integer) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(M),如果不指定则会默认分配.如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸.如 smallint(3) 中的 3 即为显示尺寸,即显示三位的数值(不包括 - 号) int 类型可以指定

MySql折腾小记二:text/blog类型不允许设置默认值,不允许存在两个CURRENT_TIMESTAMP

在 CYQ.Data 数据框架的反向工程中,遇到MySQL的问题又2个,记录下先.   1:对于时间的默认值,为:CURRENT_TIMESTAMP,不允许一个表存在两个日期都设置了:CURRENT_TIMESTAMP 解决的办法: 按理只设一个. 但在反向工程中,若遇到两个或以上的设置,为保证导数据的正常,直接取消日期的默认值.   2:text/blog类型不允许设置默认值,由于其它数据库类型是可以有默认值,所以转过来一般也会设置默认值,不过默认状态下不允许设置默认值. 解决的方法: 修改m

[Android]为Spinner填充数据后设置默认值的问题

前言 为Spinner适配完数据后需要设置其默认选项,但是发现直接setSelection(int position)有时候不管用,打开选项又发现已经选中了,但是显示出来的选项又始终默认第一个,本文为文章1的中文简单译本.   文章 1. Using spinner.setSelection & finding the spinner doesn't show the selected item when closed?   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://ww

路由器设置微信认证图文教程

  路由器设置微信认证图文教程         路由器微信认证的设置第一步.路由器上配置微信认证 举例型号.TL-WVR450A 登录路由器管理界面,点击 广告营销 >> 认证设置. [1] 认证方式设置 认证方式选择"微信认证".如下图. 微信认证 [2] 设置认证跳转链接 该链接用于认证上网,在认证链接的尾部填写1-20位的标识,生成的认证跳转链接如下图. 微信认证 请复制该跳转链接,后续步骤需要. [3] 设置微信认证提醒页面 该页面为无线客户端连接无线网络后,浏览器

赋值-c# 后台给select下拉框设置默认值

问题描述 c# 后台给select下拉框设置默认值 点击编辑时 要给下拉框赋值,在后台拿到对应的值后怎么给下拉框赋值.控件.属性=值: 请问是哪个属性.谢谢 解决方案 select是客户端的?还是服务器端的asp:DropDownList 客户端的直接 document.getElementById('selid').value='<%=cs后台文件中一个protected全局变量%>' 服务器的用ddl.SelectedValue=xxxx 解决方案二: 到底要默认值还是要赋值啊. 你说的是