?
ALTER TABLE tbl_name DROP PRIMARY KEY;
例如:
?
ALTER TABLE users2 DROP PRIMARY KEY; # 查看 SHOW COLUMNS FROM users2;(7). 删除唯一约束
?
ALTER TABLE tbl_name DROP {INDEX | KEY} index_name;
例如:
# 查看索引 SHOW INDEXES FROM users2\G; ALTER TABLE users2 DROP INDEX username; #查看 SHOW COLUMNS FROM users2; # 再查看索引 SHOW INDEXES FROM users2\G;
?
(8). 删除外键约束
ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol;
例如:
?
SHOW CREATE TABLE users2; ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1; # 查看外键不见了,但是pid索引还在 SHOW CREATE TABLE users2; ALTER TABLE users2 DROP INDEX pid; # pid索引也删除了 SHOW CREATE TABLE users2;(9). 修改列定义
?
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];
例如:
?
SHOW CREATE TABLE users2; # 将id放在最前面 ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED FIRST; SHOW COLUMNS FROM users2; # 修改字段类型。 注意:由大类型修改为小类型有可能会造成数据的丢失。 ALTER TABLE users2 MODIFY id TINYINT UNSIGNED FIRST;(10). 修改列名称
?
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];
例如:
?
#修改列名称和类型 ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL; SHOW COLUMNS FROM users2;(11). 数据表更名
?
方法一:
ALTER TABLE tbl_name RENAME [TO | AS] new_tbl_name;
方法二:
RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2]...;
例如:
?
ALTER TABLE users2 RENAME users3; SHOW TABLES; RENAME TABLE users3 TO users2; SHOW TABLES;
?
5. 总结
?
(1). 约束:
按功能划分:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT, FOREIGN KEY
按数据列的数目划分:表级约束、列级约束
(2). 修改数据表:
针对字段的操作:添加/删除字段、修改列定义、修改列名称等
针对约束的操作:添加/删除各种约束
针对数据表的操作:数据表更名(两种方式)