mysql修改字段默认值

好,先在数据库里搞个新表出来。
建完之后,打个命令 select from t_temp_test 过去看看,确认下表是不是真的已经在数据库里了。

接着,用 sp_helpt_temp_test 这个命令查查 t_temp_test 这张表的详细结构。
你会发现,字段 column_b 的默认值是空的,那个默认值的属性名叫 DF__t_temp_te__colum__1 9 DA4 5 DB。

想改这个默认值?得先把这个默认属性给删了才行。
于是,执行命令去删除它。

属性删掉后,再跑一遍 sp_helpt_temp_test 命令,确认一下,默认值属性确实没了。

最后一步,给 column_b 字段重新加上默认属性。
执行这个命令:
sql alter table t_temp_test add constraint DF__t_temp_te__colum__1 9 DA4 5 DB DEFAULT ('1 2 3 ') for column_b;
搞定!再查一次表结构 sp_helpt_temp_test,就能看到 column_b 的默认值已经变成了咱们想要的字符串 '1 2 3 '。

怎么在mysql的字段中设置默认值

创建表的时候给字段设置默认值,有时候会遇到点坑。
就拿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_dtime NOT NULL DEFAULT CURTIME(), -
date_edate NOT NULL DEFAULT CURDATE(), -
datetime_fdatetime NOT NULL DEFAULT NOW(),
这些写法在MySQL里就行不通。
总结一下经验:
1 . 对于int类型,默认值必须是整数,而且DEFAULT后面不能带括号。
2 . char类型的默认值要用单引号括起来。
3 . datetime类型的字段,可以直接用NOW()函数设置默认值为当前日期时间(格式是'YYYY-MM-DD HH:MM:SS'),但不能用系统默认值。
4 . date类型的字段,可以用CURDATE()函数设置默认为今天日期(格式'YYYY-MM-DD'),同样不能用系统默认值。
5 . time类型的字段,可以用CURTIME()设置默认为当前时间(格式'HH:MM:SS'),也不能用系统默认值。

举个例子,之前有个SQL语句在其他数据库里这样写:
sql CREATE TABLE dnt_forums ( aa int NOT NULL DEFAULT (''), bbdate NOT NULL DEFAULT (getdate()), cc char(5 0) NOT NULL DEFAULT (null) );
在MySQL里要改成这样才行:
sql CREATE TABLE dnt_forums ( aa int NOT NULL DEFAULT 2 , bb timestamp NOT NULL DEFAULT NOW(), cc char(5 0) NOT NULL DEFAULT '' );
你看,int类型的默认值不能带括号,而且必须是整数;timestamp类型的字段不能有默认值,直接用NOW()取当前时间就行;char类型的字段不能默认为null,可以设为空字符串''。

MySQL中的列默认值设置和使用方法mysql中列默认值

在MySQL里,设置列的默认值其实挺简单的,就是在创建表的时候,给那些可能会空着的字段指定一个默认值。
比如说,你创建一个表,里面有个名字叫name的字段,你希望如果插入数据的时候忘记给它赋值了,就自动填上NULL,你就可以在创建表的SQL语句里这么写:
sql CREATE TABLE test ( id INT(1 0) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(2 0) DEFAULT NULL, age INT(3 ) );
这样一来,每次往test表里插数据,如果没给name字段赋值,它就会自动填上NULL。
当然啦,如果你想要插入的时候给name字段指定一个值,比如Tom,你可以在INSERT语句里显式地给它赋值:
sql INSERT INTO test (name, age) VALUES ('Tom', 2 0);
至于怎么修改已有的表的字段默认值,你可以用ALTER TABLE语句,比如想把age字段的默认值改成1 8 ,可以这么操作:
sql ALTER TABLE test ALTER age SET DEFAULT 1 8 ;
这里要注意几个事儿:MySQL的默认值只能是常量,不能是表达式或者函数;这个默认值只对INSERT语句起作用,UPDATE的时候并不会自动填上默认值;如果你用ALTER TABLE改了默认值,新的默认值会覆盖旧的;不同的存储引擎对默认值的支持可能不太一样,选存储引擎的时候得考虑这个。
总的来说,设置默认值能帮你省不少事儿,但也得根据实际情况来定,别瞎设。

SQL如何使用 alter column语句添加字段的默认值(defualt)

给MySQL表添加字段并设置默认值其实挺简单的,主要通过约束来实现。
我这就给你演示一下,以学生表(student)为例,咱们需要给password字段设置默认值1 2 1 3 1 4 2
先建个学生表: sql CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(5 0), password VARCHAR(5 0) );
如果你直接插入数据,必须手动指定所有字段的值,这要是有好多字段可就麻烦了。
但如果你设置了默认值,那插入时就可以省事不少。

现在给password设置默认值: sql ALTER TABLE student ADD CONSTRAINT df_pwd_stu DEFAULT '1 2 1 3 1 4 2 ' FOR COLUMN password VARCHAR(5 0);
这里的df_pwd_stu是我自定义的约束名,你也可以随便取。

这样设置后,再插入数据就不用管password了,数据库会自动填上默认值: sql INSERT INTO student (name) VALUES ('张三');
执行这条语句后,张三的password就会自动变成1 2 1 3 1 4 2 ,是不是很方便?这样就完成了整个过程。

MySQL字段默认值设置详解

嘿,小伙伴们!在MySQL里,给字段设置默认值这事儿,简直就是数据库管理中的小妙招。
它能有效防止数据录入时的错误,还能提升数据质量。
今天就来和大家唠唠怎么设置默认值,以及需要注意的细节。
默认值这玩意儿,主要通过DEFAULT关键字来操作,它通常在非空列上大显神通,保证数据的完整性。
创建表的时候,你就能给列指定一个默认值。
比如,你试试看,如果不填某个字段的值,系统就会自动用默认值来填充。
默认值还能修改、添加或者删除,这在实际项目中很常见,因为业务需求总在变嘛。
默认值不单单局限于非空列,普通字段也能设置默认值。
不过,我一般推荐给非空字段用默认值,这样数据验证起来就轻松多了。
在项目里,像当前时间、未删除标记、特定状态这些默认值,用得那叫一个频繁,它们让代码读起来更顺眼,出错的机会也少了。
设置默认值的时候,记得和字段类型对上号,比如状态值字段用tinyint就挺合适的,别用char或varchar,否则可能会闹出类型转换的乌龙。
根据我自己的经验,下面这些小建议能帮你们更好地玩转默认值:这篇文章就是想让大家对MySQL的字段默认值有个全面了解,提升一下数据库操作的小技巧。