MySQL--MODIFY COLUMN和ALTER COLUMN

===================================================

在修改列时,可以使用ALTER TABLE MODIFY COLUMN  和ALTER TABLE ALTER COLUMN两种方式修改列。

对于部分只需要修改表定义而不需要修改表数据的操作,使用ALTER COLUMN操作可以避免数据发生移动,提高ALTER 操作效率。

只需要修改表结构的操作有:
1、更改字段的默认值
2、增加和删除字段的AUTO_INCREMENT属性(主要是增加属性而不是增加字段)
3、增删改ENUM的常量值

===================================================
准备测试数据

DROP TABLE tb001;
CREATE TABLE tb001(id INT auto_increment PRIMARY KEY,c1 VARCHAR(20));
INSERT INTO tb001(c1) SELECT user FROM mysql.user;

===================================================

测试ALTER COLUMN

ALTER TABLE tb001
MODIFY COLUMN C1 VARCHAR(20) NOT NULL DEFAULT ‘A1‘;

===================================================

测试MODIFY COLUMN

ALTER TABLE tb001
ALTER COLUMN C1 SET DEFAULT ‘A2‘;

原文地址:https://www.cnblogs.com/gaogao67/p/10390602.html

时间: 2024-10-14 16:25:09

MySQL--MODIFY COLUMN和ALTER COLUMN的相关文章

mysql之ALTER COLUMN、CHANGE COLUMN、MODIFY COLUMN的区别

ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; alter table film alter column rental_duration drop default; CHANGE COLUMN:列的重命名.列类型的变更以及列位置的移动 例子: ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32)

MySQL:ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN

ALTER COLUMN.MODIFY COLUMN 和 CHANGE COLUMN 语句修改列: ALTER COLUMN:改变.删除列的默认值. 这个语句会直接修改 .frm 文件而不涉及表数据,所以操作很快. -- 改变列的默认值 ALTER TABLE test ALTER COLUMN age SET DEFAULT 17; -- 删除列的默认值 ALTER TABLE test ALTER COLUMN age DROP DEFAULT; MODIFY COLUMN:修改列数据类型:

alter column和modify column

5.6中,发现其实alter column 和更改modify column 步骤是一样的 mysql> create table xs(name varchar(12),age int default 5);Query OK, 0 rows affected (0.34 sec) mysql> insert into xs values('a',4);Query OK, 1 row affected (0.05 sec) mysql> set profiling=1;Query OK,

修改数据库字段类型(alter table alter column)

MySQL: ALTER TABLE Customer MODIFY Address char(100); Oracle: ALTER TABLE Customer MODIFY Address char(100); SQL Server: ALTER TABLE Customer ALTER COLUMN Address char(100); ref: SQL Modify Column Syntax

MSSql Server 索引'uq_f_userName' 依赖于 列'f_userName'。由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN f_userName 失败

--需求有变,需要往t_login表的f_userName字段添加外国人名,之前设置的varchar(10)不够,商议决定改成varchar(30),执行的时候,提示消息 索引'uq_f_userName' 依赖于 列'f_userName'.由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN f_userName 失败.--原来,之前为了防止f_userName重复,添加了唯一索引uq_f_userName.--进行如下操作后,问题妥妥解决--表名:t_login(登

[MySQL] Data too long for column 'title' at row 1

李刚轻量级JavaEE第六章的坑..艹李刚自己有没试过这些代码的啊,6.4这一份HqlQuery.java里需要的表,根本就跟他提供的sql脚本对不上啊..坑爹啊,而且字符编码集也有问题. 出现这个原因是编码不统一的问题. 首先字符编码集有GBK.GB2312.UTF8,区别详见 http://down.chinaz.com/server/201111/1423_1.htm 再看了手头上的一些源代码,结论是,感觉用utf8比较合适 那出现这个问题如何修复 1.查看一下MySQL的编码集,在MyS

Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'username' cannot be null

今天程序中遇见这个错误一直找不到哪里错后来重写了一遍jsp页面才知道 username我写成了name 和po中的代码对应不上导致了这个错误 写代码一定要认真一点啊     好坑啊 Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'username' cannot be null

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'org_mer_id' in where clause is ambiguous

### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'org_mer_id' in where clause is ambiguous ### The error may exist in class path resource [mapper/StatisticsPeriodTaskMapper.xml] ##

postgreSQL alter column data type to timestamp without time zone

现在公司数据访问层用的是mybatis框架,数据库用的pgsql,其中日期字段指定的是timestamp类型的.实体类是String类型的. 现在在执行更新操作的时候报这个错误:postgreSQL alter column data type to timestamp without time zone 以后要一定要多注意,报错的提示信息,其实上面就有交给你怎样进行修改,修改后的sql语句: <update id="updateProductService" parameter