SQL-ALTER-change和modify区别
2024-08-28 17:17:08
ALTER 对于列的应用:
1.更改列名
格式:CHANGE
old_col_name
new_col_name
column_definition
保留old和new列名
列名:a ---->b 列类型
ALTER TABLE t1 CHANGE a b INTEGER;
2.更改列类型,不改列名
保留old和new的列名,即使一样。
ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
3.更改列类型,不改列名。
不保留old列名。
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
注意:
< 1>.使用CHANGE或者MODIFY时,列的定义必须包含:数据的类型和应用到列上的属性,但不包括:索引,例如:
PRIMARY KEY
or UNIQUE
例如: 列的定义:
INT UNSIGNED DEFAULT 1 COMMENT 'my column'
更改 :
ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED DEFAULT 1 COMMENT 'my column';
<2>.使用CHANGE或者MODIFY改变数据类型时,列的值也会尽可能转成对应的列类型。可能会丢失数据,最好,在使用ALTER table 之前设置;strict SQL mode
<3>.增加指定位置的列,可以用FIRST,AFTER column_name,
<4>.使用CHANGE,MODIFY缩短列的长度候,列长小于对应索引长度,索引会自动缩短。
4.更改列的默认值:ALTER TABLE tb_name ALTER column_name。
CREATE TABLE test2(id INT ,NAME VARCHAR(4)); 在不指定默认值的情况下,建表之后:默认null。
更改默认值:ALTER TABLE test2 ALTER name SET DEFAULT '';
注意:更改默认值 只对更改之后,新插入的数据有效。表中以前的数据,是NULL还是NULL,是空还是空。
最新文章
- iOS-APP提交上架流程(新手必看!2016年3月1日最新版)
- HashMap原理分析
- CodeForces Round 196
- 替换linux下的rm命令,并对-rf进行判断
- ansible 变更内网服务器配置
- Cassandra目录
- A Tour of Go Slicing slices
- jdk配置环境变量(windows)
- 武道释义 &;#183; 零散
- 龙芯3A上V8的编译与测试
- JS判断用户连续输入
- 8636 跳格子(dfs+记忆化搜索)
- java中的各种流(老师的有道云笔记)
- Tomcat安装和目录简介
- centos6.x升级protobuf操作流程.
- APP案例分析
- poj 1741 树的点分治(入门)
- iOS NSCache缓存类的了解
- win server 2012 服务器不能ping通
- Java Code Examples for org.codehaus.jackson.map.DeserializationConfig 配置