Mysql必读MySQL中的alter table命令的基本使用方法及提速优化
《Mysql必读MySQL中的alter table命令的基本使用方法及提速优化》要点: 一、基本用法MYSQL实例 1. 增加列MYSQL实例 alter table tbl_name add col_name type 例如,? 给pet的表增加一列 weight,MYSQL实例 mysql>alter table pet add weight int; 2. 删除列MYSQL实例 alter table tbl_name drop col_name 例如,删除pet表中的weight这一列MYSQL实例 mysql>alter table pet drop weight; 3. 改变列MYSQL实例 分为改变列的属性和改变列的名字MYSQL实例 改变列的属性――方法1:MYSQL实例 alter table tbl_name modify col_name type 例如,改变weight的类型MYSQL实例 mysql>alter table pet modify weight varchar(30); 改变列的属性――方法2:MYSQL实例 alter table tbl_name change old_col_name col_name type 例如,改变weight的类型MYSQL实例 alter table pet change weight weight varchar(30); 改变列的名字:MYSQL实例 alter table tbl_name change old_col_name col_name 例如改变pet表中weight的名字:MYSQL实例 mysql>alter table pet change weight wei; 4. 改变表的名字MYSQL实例 alter table tbl_name rename new_tbl 例如,把pet表更名为animalMYSQL实例 mysql>alter table pet rename animal; 二、对ALTER TABLE的优化 mysql> ALTER TABLE user -> MODIFY COLUMN pwd VARCHAR NOT NULL DEFAULT ‘666666'; ? mysql> ALTER TABLE user -> ALTER COLUMN pwd varchar not null SETDEFAULT 5; ? CREATETABLE IF NOT EXISTS dictionary ( id int(10) unsigned NOT NULLAUTO_INCREMENT,word varchar(100) NOT NULL,mean varchar(300) NOT NULL,PRIMARY KEY (`id`) ); 1.2??? 插入一些测试数据 mysql>DELIMITER $$ mysql>DROP PROCEDURE IF EXISTS SampleProc$$ Query OK,0rows affected,1 warning (0.01 sec) 1.3??? SHOW STATUS 观察结果Modify Column 以及Alter Column的区别 mysql> flush status; Query OK,0 rows affected (0.00 sec) mysql> alter table dictionary ->modify column mean varchar(20) NOT null default 'DEFAULT1'; Query OK,110002 rows affected (3.07 sec) Records: 110002 Duplicates: 0 Warnings: 0 mysql> SHOW STATUS WHERE Variable_name LIKE'Handler%' ->OR Variable_name LIKE 'Created%'; +----------------------------+--------+ | Variable_name | Value | +----------------------------+--------+ | Handler_read_rnd_next | 110003 | | Handler_rollback | 0 | | Handler_savepoint | 0 | | Handler_savepoint_rollback | 0 | | Handler_update | 0 | | Handler_write | 110002 | +----------------------------+--------+ ? mysql> flush status; mysql> alter table dictionary -> alter column mean set default'DEFAULT2'; Query OK,0 rowsaffected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> SHOW STATUSWHERE Variable_name LIKE 'Handler%' -> OR Variable_name LIKE 'Created%'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ |Handler_read_rnd_next | 0 | |Handler_savepoint_rollback | 0 | | Handler_update | 0 | | Handler_write | 0 | 2??? 修改frm文件 mysql>create table dictionary_new like dictionary; 3.?????? 执行FLUSH TABLES WITH READ LOCK. 所有的表都被关闭 mysql> alter table dictionary_new -> modify column mean varchar(30)default 'DEFAULR#'; mysql> flush table with read lock; ? mysql> unlock tables; mysql> insert into dictionary(word) values('Random'); mysql> select * from dictionarywhere word='Random'; 从下面的结果可以看出,默认值已经被改掉,且不涉及到内容的改变 +--------+--------+----------+ | id | word | mean | +--------+--------+----------+ | 110004 |Random | DEFAULR# | +--------+--------+----------+ ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Mysql实例解析如何加快mysql编译的速度
- MYSQL数据库CentOS7使用rpm包安装mysql 5.7.18
- 如何在Django中执行表/行锁
- mysql提示used in key specification without a key length
- MYSQL数据库CentOs7.x安装Mysql的详细教程
- Mysql实例MySQL命令行界面中出现字符错误提示的原因及解决方
- Mysql应用MySQL实现当前数据表的所有时间都增加或减少指定的
- Mysql应用mysql创建函数出现1418错误的解决办法
- Mysql必读当mysqlbinlog版本与mysql不一致时可能导致出哪些
- 使用 MERGE 在单个语句中对表执行 UPDATE 和 DELETE 操作