mysql如何设置默认值
专注于为中小企业提供成都网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业皋兰免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
mysql设置默认值的方法:用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之前,否则报错
用ALTER TABLE语句,表名是TableName,字段名是FieldName。 ALTER TABLE `TableName` MODIFY COLUMN`FieldName` VARCHAR(14) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL; 设置字段的字符编码为gbk的一段可以不用,如下就可以 ALTER TABLE `TableName` MODIFY COLUMN `FieldName` VARCHAR(14)
创建表时设置默认值,请见下例(设置员工工资默认值=2500):
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;
alter
table
[tablename]
drop
constraint
[标识]
ALTER
TABLE
[tableName]
ADD
CONSTRAINT
[标识]
DEFAULT
(25)
FOR
[columnName]
如果原字段没有默认值,下面一句就不用写了:
alter
table
[tablename]
drop
constraint
[标识]
即先给此字段添加一个默认值
要已经有了默认值就写上面的Ok
问题:MySQL datetime数据类型设置当前时间为默认值
解决:
-- 方法一:
由于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即可
-- 方法二:
在MySQL5.0以上版本中也可以使用trigger来实现此功能。
create table test_time (
idint(11),
create_time datetime
);
delimiter |
create trigger default_datetime beforeinsert on test_time
foreach row
if new.create_time is null then
set new.create_time = now();
end if;|
delimiter ;
-- 方法三:
create table test(name varchar(10),registerTime datetime default getdate());
create table test(name varchar(10),registerTime datetime default '0000-00-00');