mysql默认值怎么用 mysql如何设置默认值

MySql怎么给列设置默认值 mysql修改默认值

创建表时设置默认值,请见下例(设置员工工资默认值=2500):

成都创新互联公司专注于企业成都全网营销、网站重做改版、阳信网站定制设计、自适应品牌网站建设、H5高端网站建设成都商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为阳信等各大城市提供网站开发制作服务。

create table employees (eid varchar(10) primary key,

empname varchar(50),entrydate date,

salary int default 2500);

修改字段默认值,请见下例(修改员工工资默认值为3000):

alter table employees modify salary int default 3000;

mysql 引用默认值的sql语句怎么写

1、如果您打算插入记录时使用默认值INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name [(col_name,...)]

VALUES ({expr | DEFAULT},...),(...),...

[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]这是mysql增加记录的SQL语句,在VALUES后面的括号内使用DEFAULT将会使用默认值最为字段的值。2、如果您打算读取某个表字段的默认值可以使用DESCRIBE {DESCRIBE | DESC} tbl_name [col_name | wild]参考下面的例子mysql DESCRIBE city;

+------------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+------------+----------+------+-----+---------+----------------+

| Id | int(11) | NO | PRI | NULL | auto_increment |

| Name | char(35) | NO | | | |

| Country | char(3) | NO | UNI | | |

| District | char(20) | YES | MUL | | |

| Population | int(11) | NO | | 0 | |

+------------+----------+------+-----+---------+----------------+

5 rows in set (0.00 sec)

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'

);

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设置默认值为rmb

用mysql建数据表设置默认值,代码为【stuSex varchar(2) default '男' check(stuSex in('男', '女'))】。

mysql设置默认值的方法:

create table stu(

stuId varchar(30) primary key,

stuName varchar(50) not null,

stuSex varchar(2) default '男' check(stuSex in('男', '女')),

stuJg varchar(30),

stuDept varchar(40)

)

用mysql建数据表设置默认值:

int 类型:default 1; (直接加数值)

varchar类型:default 'aaa'(用单引号)

另:经试验,在mysql中default 要写在 check之前,否则报错

如何在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即可

MYSQL中怎样设列的默认值为Now()的介绍

MySQL目前不支持列的Default 为函数的形式 如达到你某列的默认值为当前更新日期与时间的功能 你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型 TIMESTAMP值可以从 的某时的开始一直到 年 精度为一秒 其值作为数字显示 TIMESTAMP值显示尺寸的格式如下表所示 + + +| 列类型| 显示格式  || TIMESTAMP( ) | YYYYMMDDHHMMSS | | TIMESTAMP( ) | YYMMDDHHMMSS  || TIMESTAMP( ) | YYMMDDHHMM || TIMESTAMP( ) | YYYYMMDD  || TIMESTAMP( ) | YYMMDD || TIMESTAMP( ) | YYMM  || TIMESTAMP( ) | YY |+ + + 完整 TIMESTAMP格式是 位 但TIMESTAMP列也可以用更短的显示尺寸创造最常见的显示尺寸是 和 你可以在创建表时指定一个任意的显示尺寸 但是定义列长为 或比 大均会被强制定义为列长 列长在从 ~ 范围的奇数值尺寸均被强制为下一个更大的偶数 列如 定义字段长度 强制字段长度TIMESTAMP( )  TIMESTAMP( )TIMESTAMP( )  TIMESTAMP( )TIMESTAMP( )  TIMESTAMP( )TIMESTAMP( )  TIMESTAMP( )所有的TIMESTAMP列都有同样的存储大小 使用被指定的时期时间值的完整精度( 位)存储合法的值不考虑显示尺寸 不合法的日期 将会被强制为 存储 这有几个含意 虽然你建表时定义了列TIMESTAMP( ) 但在你进行数据插入与更新时TIMESTAMP列实际上保存了 位的数据(包括年月日时分秒) 只不过在你进行查询时MySQL返回给你的是 位的年月日数据 如果你使用ALTER TABLE拓宽一个狭窄的TIMESTAMP列 以前被 隐蔽 的信息将被显示 同样 缩小一个TIMESTAMP列不会导致信息失去 除了感觉上值在显示时 较少的信息被显示出 尽管TIMESTAMP值被存储为完整精度 直接操作存储值的唯一函数是UNIX_TIMESTAMP() 由于MySQL返回TIMESTAMP列的列值是进过格式化后的检索的值 这意味着你可能不能使用某些函数来操作TIMESTAMP列(例如HOUR()或SECOND()) 除非TIMESTAMP值的相关部分被包含在格式化的值中 例如 一个TIMESTAMP列只有被定义为TIMESTAMP( )以上时 TIMESTAMP列的HH部分才会被显示 因此在更短的TIMESTAMP值上使用HOUR()会产生一个不可预知的结果 不合法TIMESTAMP值被变换到适当类型的 零 值( ) (DATETIME DATE亦然) 你可以使用下列语句来验证 CREATE TABLE test ( id INT ( ) UNSIGNED AUTO_INCREMENT date TIMESTAMP ( ) PRIMARY KEY( id ));INSERT INTO test SET id = ;SELECT * FROM test;+ + +| id | date  |+ + +|  |   |+ + +ALTER TABLE test CHANGE date date TIMESTAMP( );SELECT * FROM test;+ + +| id | date  |+ + +|  | |+ + +你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作 如果你有多个TIMESTAMP列 只有第一个自动更新 自动更新第一个TIMESTAMP列在下列任何条件下发生 列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定 列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值 (注意一个UPDATE设置一个列为它已经有的值 这将不引起TIMESTAMP列被更新 因为如果你设置一个列为它当前的值 MySQL为了效率而忽略更改 ) 你明确地设定TIMESTAMP列为NULL 除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间 只要将列设为NULL 或NOW() CREATE TABLE test ( id INT ( ) UNSIGNED AUTO_INCREMENT date TIMESTAMP ( ) date TIMESTAMP ( )  PRIMARY KEY( id ) );INSERT INTO test (id date date ) VALUES ( NULL NULL);INSERT INTO test SET id= ;+ + + +| id | date  | date  |+ + + +|  | | ||  | | |+ + + + 第一条指令因设date date 为NULL 所以date date 值均为当前时间 第二条指令因没有设date date 列值 第一个TIMESTAMP列date 为更新为当前时间 而二个TIMESTAMP列date 因日期不合法而变为 UPDATE test SET id= WHERE id= ;+ + + +| id | date  | date  |+ + + +|  | | ||  | | |+ + + + 这条指令没有明确地设定date 的列值 所以第一个TIMESTAMP列date 将被更新为当前时间UPDATE test SET id= date =date date =NOW() WHERE id= ;+ + + +| id | date  | date  |+ + + +|  | | ||  | | |+ + + + 这条指令因设定date =date 所以在更新数据时date 列值并不会发生改变 而因设定date =NOW() 所以在更新数据时date 列值会被更新为当前时间 此指令等效为 UPDATE test SET id= date =date date =NULL WHERE id= ; 因MySQL返回的 TIMESTAMP 列为数字显示形式 你可以用DATE_FROMAT()函数来格式化 TIMESTAMP 列SELECT id DATE_FORMAT(date %Y %m %d %H:%i:%s ) As date   DATE_FORMAT(date %Y %m %d %H:%i:%s ) As date FROM test;+ + + +| id | date   | date   |+ + + +|  | : : | : : ||  | : : | : : |+ + + +SELECT id DATE_FORMAT(date %Y %m %d ) As date   DATE_FORMAT(date %Y %m %d ) As date FROM test;  + + + +| id | date   | date   |+ + + +|  |  |  ||  |  |  |+ + + +在某种程度上 你可以把一种日期类型的值赋给一个不同的日期类型的对象 然而 而尤其注意的是 值有可能发生一些改变或信息的损失 如果你将一个DATE值赋给一个DATETIME或TIMESTAMP对象 结果值的时间部分被设置为 : : 因为DATE值中不包含有时间信息 如果你将一个DATETIME或TIMESTAMP值赋给一个DATE对象 结果值的时间部分被删除 因为DATE类型不存储时间信息 尽管DATETIME DATE和TIMESTAMP值全都可以用同样的格式集来指定 但所有类型不都有同样的值范围 例如 TIMESTAMP值不能比 早 也不能比 晚 这意味着 一个日期例如 当作为一个DATETIME或DATE值时它是合法的 但它不是一个正确TIMESTAMP值!并且如果将这样的一个对象赋值给TIMESTAMP列 它将被变换为 当指定日期值时 当心某些缺陷 允许作为字符串指定值的宽松格式能被欺骗 例如 因为 : 分隔符的使用 值 : : 可能看起来像时间值 但是如果在一个日期中使用 上下文将作为年份被解释成 值 : : 将被变换到 因为 不是一个合法的月份 以 位数字指定的年值是模糊的 因为世纪是未知的 MySQL使用下列规则解释 位年值 在 范围的年值被变换到 在范围 的年值被变换到 lishixinzhi/Article/program/MySQL/201311/11205


本文题目:mysql默认值怎么用 mysql如何设置默认值
转载注明:http://bzwzjz.com/article/dochsgc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设 成都网站制作 定制网站建设 做网站设计 商城网站建设 成都网站建设公司 成都企业网站建设 成都网站制作 定制级高端网站建设 手机网站制作设计 高端网站设计 成都网站制作 定制网站制作 成都网站建设公司 广安网站设计 成都网站制作 企业网站制作 成都网站设计公司 网站建设费用 营销型网站建设 达州网站设计 成都网站建设