MySQL之 ALTER vs CHANGE vs MODIFY COLUMN
1.ALTER COLUMN
用于设置或者移除某一列的默认(缺省)值,
1.1用法
ALTER TABLE MyTable ALTER COLUMN foo SET DEFAULT 'bar';
ALTER TABLE MyTable ALTER COLUMN foo DROP DEFAULT;
1.2 举例
mysql> desc pre_common_block;
+----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------------------+------+-----+---------+----------------+
| bid | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| blockclass | varchar(255) | NO | | 0 | |
| blocktype | tinyint(1) | NO | | 0 | |
| name | varchar(255) | NO | | | |
| title | text | NO | | NULL | |
| classname | varchar(255) | NO | | | |
| summary | text | NO | | NULL | |
| uid | mediumint(8) unsigned | NO | | 0 | |
| username | varchar(255) | NO | | | |
| styleid | smallint(6) unsigned | NO | | 0 | |
| blockstyle | text | NO | | NULL | |
| picwidth | smallint(6) unsigned | NO | | 0 | |
| picheight | smallint(6) unsigned | NO | | 0 | |
| target | varchar(255) | NO | | | |
| dateformat | varchar(255) | NO | | | |
| dateuformat | tinyint(1) | NO | | 0 | |
| script | varchar(255) | NO | | | |
| param | text | NO | | NULL | |
| shownum | smallint(6) unsigned | NO | | 0 | |
| cachetime | int(10) | NO | | 0 | |
| cachetimerange | char(5) | NO | | | |
| punctualupdate | tinyint(1) | NO | | 0 | |
| hidedisplay | tinyint(1) | NO | | 0 | |
| dateline | int(10) unsigned | NO | | 0 | |
| notinherited | tinyint(1) | NO | | 0 | |
| isblank | tinyint(1) | NO | | 0 | |
+----------------+-----------------------+------+-----+---------+----------------+
26 rows in set (0.14 sec) mysql> ALTER TABLE pre_common_block ALTER COLUMN blocktype set DEFAULT 5;
Query OK, 0 rows affected (0.32 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc pre_common_block;
+----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------------------+------+-----+---------+----------------+
| bid | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| blockclass | varchar(255) | NO | | 0 | |
| blocktype | tinyint(1) | NO | | 5 | |
| name | varchar(255) | NO | | | |
| title | text | NO | | NULL | |
| classname | varchar(255) | NO | | | |
| summary | text | NO | | NULL | |
| uid | mediumint(8) unsigned | NO | | 0 | |
| username | varchar(255) | NO | | | |
| styleid | smallint(6) unsigned | NO | | 0 | |
| blockstyle | text | NO | | NULL | |
| picwidth | smallint(6) unsigned | NO | | 0 | |
| picheight | smallint(6) unsigned | NO | | 0 | |
| target | varchar(255) | NO | | | |
| dateformat | varchar(255) | NO | | | |
| dateuformat | tinyint(1) | NO | | 0 | |
| script | varchar(255) | NO | | | |
| param | text | NO | | NULL | |
| shownum | smallint(6) unsigned | NO | | 0 | |
| cachetime | int(10) | NO | | 0 | |
| cachetimerange | char(5) | NO | | | |
| punctualupdate | tinyint(1) | NO | | 0 | |
| hidedisplay | tinyint(1) | NO | | 0 | |
| dateline | int(10) unsigned | NO | | 0 | |
| notinherited | tinyint(1) | NO | | 0 | |
| isblank | tinyint(1) | NO | | 0 | |
+----------------+-----------------------+------+-----+---------+----------------+
26 rows in set (0.02 sec)
2.ALTER COLUMN
用于某一数据列的重命名、修改数据类型或者删除。
2.1用法
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz;
2.2 举例
mysql> desc pre_common_block;
+----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------------------+------+-----+---------+----------------+
| bid | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| blockclass | varchar(255) | NO | | 0 | |
| blocktype | tinyint(1) | NO | | 5 | |
| name | varchar(255) | NO | | | |
| title | text | NO | | NULL | |
| classname | varchar(255) | NO | | | |
| summary | text | NO | | NULL | |
| uid | mediumint(8) unsigned | NO | | 0 | |
| username | varchar(255) | NO | | | |
| styleid | smallint(6) unsigned | NO | | 0 | |
| blockstyle | text | NO | | NULL | |
| picwidth | smallint(6) unsigned | NO | | 0 | |
| picheight | smallint(6) unsigned | NO | | 0 | |
| target | varchar(255) | NO | | | |
| dateformat | varchar(255) | NO | | | |
| dateuformat | tinyint(1) | NO | | 0 | |
| script | varchar(255) | NO | | | |
| param | text | NO | | NULL | |
| shownum | smallint(6) unsigned | NO | | 0 | |
| cachetime | int(10) | NO | | 0 | |
| cachetimerange | char(5) | NO | | | |
| punctualupdate | tinyint(1) | NO | | 0 | |
| hidedisplay | tinyint(1) | NO | | 0 | |
| dateline | int(10) unsigned | NO | | 0 | |
| notinherited | tinyint(1) | NO | | 0 | |
| isblank | tinyint(1) | NO | | 0 | |
+----------------+-----------------------+------+-----+---------+----------------+
26 rows in set (0.02 sec) mysql> ALTER TABLE pre_common_block CHANGE COLUMN blocktype changetype tinyint(1) NOT NULL
Query OK, 2 rows affected (0.77 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> desc pre_common_block;
+----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------------------+------+-----+---------+----------------+
| changetype | tinyint(1) | NO | | NULL | |
| bid | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| blockclass | varchar(255) | NO | | 0 | |
| name | varchar(255) | NO | | | |
| title | text | NO | | NULL | |
| classname | varchar(255) | NO | | | |
| summary | text | NO | | NULL | |
| uid | mediumint(8) unsigned | NO | | 0 | |
| username | varchar(255) | NO | | | |
| styleid | smallint(6) unsigned | NO | | 0 | |
| blockstyle | text | NO | | NULL | |
| picwidth | smallint(6) unsigned | NO | | 0 | |
| picheight | smallint(6) unsigned | NO | | 0 | |
| target | varchar(255) | NO | | | |
| dateformat | varchar(255) | NO | | | |
| dateuformat | tinyint(1) | NO | | 0 | |
| script | varchar(255) | NO | | | |
| param | text | NO | | NULL | |
| shownum | smallint(6) unsigned | NO | | 0 | |
| cachetime | int(10) | NO | | 0 | |
| cachetimerange | char(5) | NO | | | |
| punctualupdate | tinyint(1) | NO | | 0 | |
| hidedisplay | tinyint(1) | NO | | 0 | |
| dateline | int(10) unsigned | NO | | 0 | |
| notinherited | tinyint(1) | NO | | 0 | |
| isblank | tinyint(1) | NO | | 0 | |
+----------------+-----------------------+------+-----+---------+----------------+
26 rows in set (0.00 sec)
3.MODIFY COLUMN
除了重命名外能够做CHANGE COLUMN能做的一切工作。
3.1用法
ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
MySQL之 ALTER vs CHANGE vs MODIFY COLUMN的更多相关文章
- MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN
ALTER COLUMN 语法: ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} 作用: 设置或删除列的默认值.该操作会直接修 ...
- alter table fx.pet modify column `species` varchar(20) binary;
alter table fx.pet modify column `species` varchar(20) binary;
- mysql ALTER COLUMN MODIFY COLUMN CHANGE COLUMN 区别及用法 (转)
-- 设置或删除列的默认值.该操作会直接修改.frm文件而不涉及表数据.此操作很快 -- ALTER COLUMN ALTER TABLE dsp_ad_center.XianDuan ALTER ...
- mysql 的 alter table 操作性能小提示
通常情况下,修改表的结构一般不会有太大问题,无非就是一个 alter table 操作,但是对于大表做 alter 操作是一个大问题,请小伙伴们慎重. mysql执行大部分修改表结构操作方法是创建一个 ...
- mysql之ALTER COLUMN、CHANGE COLUMN、MODIFY COLUMN的区别
ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; al ...
- MySQL:ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN
ALTER COLUMN.MODIFY COLUMN 和 CHANGE COLUMN 语句修改列: ALTER COLUMN:改变.删除列的默认值(备注:列的默认值存储在 .frm 文件中). 这个语 ...
- MySQL中ALTER ,CHANGE , MODIFY
ALTER TABLE project_list CHANGE COLUMN descriptionofproj proj_desc VARCHAR(100), CHANGE COLUMN contr ...
- mysql 中alter语句中change跟modify的区别
mysql 中alter语句中change和modify的区别可以使用CHANGE old_col_name column_definition子句对列进行重命名.重命名时,需给定旧的和新的列名称和列 ...
- Modify column Vs change column
引言 I know, we can not rename a column using modify column syntax,but can change column syntax. My qu ...
随机推荐
- QR代码简单
QR代码(Quick Response Code, 高速响应码)属于二维矩阵码在一个.由DENSO(日本电装)公司开发,由JIS和ISO将其标准化. QR码分为两种模式:模式1.模式2.当中.模式1相 ...
- hdu 3001 Travelling (TSP问题 )
Travelling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 用android LinearLayout和RelativeLayout实现精确布局(转)
先明确几个概念的区别: padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父控件的边距. a ...
- Round #169 (Div. 2)D. Little Girl and Maximum XOR
1.首先是要找到一个位置从左至右,作l这一个是0,r这一个是1. 2.实例01011,10100.你将能够找到01111和10000. #include<cstdio> #include& ...
- thinkphp学习笔记5—模块化设计
原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: htt ...
- JUnit4.8.2来源分析-2 org.junit.runner.Request
JUnit4.8.2源代码,最为yqj2065兴趣是org.junit.runner.Request,现在是几点意味着它? ①封装JUnit的输入 JUnit4作为信息处理单元,它的输入是单元測试类- ...
- C++ friend 用法汇总
C++这位朋友同意之类的非公共成员的机制是一个类或函数访问,根据朋友的类型分为三种类型:一般非类成员函数为好友,类成员函数为好友.类为好友. 1 内容朋友 包括报表朋友的朋友以及朋友的定义.明默的感觉 ...
- 怪异php 语法, 求解!
查找php馍用来推断是否串串返回值和方法 strpos很奇怪. 请看下面的语句: echo "A1: ".(strpos("csd","c" ...
- CQRS
CQRS 2015-06-04 15:33 by 敏捷的水, 177 阅读, 0 评论, 收藏, 编辑 CQRS是Command Query Responsibility Seperation(命令查 ...
- 兼容安卓的javaproject1.0
<pre class="java" name="code"> //兼容安卓的系统package cn.com.likeshow; import ja ...