强大的alter

作者:zccst
alter的主要作用是修改已经建立的表结构。主要是那些由于权限或历史原因,不能drop后重新创建的情况。

一、修改引擎
alter table table_name engine=innodb;


二、修改库、表、字段的字符集

修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];


把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


只是修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;


查看数据库编码:
SHOW CREATE DATABASE db_name;

查看表编码:
SHOW CREATE TABLE tbl_name;

查看字段编码:
SHOW FULL COLUMNS FROM tbl_name;



三、重命名表

ALTER TABLE 【表名字】 RENAME 【表新名字】


四、修改列
1,修改为自增
alter table network_section_list change `id` `id` int(11) not null auto_increment;

2:删除表中主键

Alter TABLE 【表名字】 drop primary key

3:添加主键

ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)


4:删除列

ALTER TABLE 【表名字】 DROP 【列名称】

5:增加列

ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL  COMMENT '注释说明'

6:修改列的类型信息

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL  COMMENT '注释说明'

7:重命名列

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL  COMMENT '注释说明'




五、修改索引

1:添加索引

ALTER TABLE sj_resource_charges add index INDEX_NAME (name);

2: 添加唯一限制条件索引

ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);

3: 删除索引

alter table tablename drop index emp_name;

你可能感兴趣的:(alter)