mysql alter
阅读数:140 评论数:0
跳转到新版页面分类
数据库
正文
一、语法
1、基本语法
alter table [ignore] tablename alteration [,alteration...]
(1)ignore,如果会导致唯一键重复,则这些操作将自动忽略。
(2)alteration
语法 | 描述 |
add [column] column_description [first|after column] |
在指定的地方添加(如果没有指定,就是在最后一列后面)。column_description与create语法中的名称和类型一致。 |
add index[index](column,...) | 在指定的一列或几列添加一个表的索引 |
add [constraint[symbol]] primary key(column,...) | 指定一列或几列为表的主键,constraint针对使用外键的表 |
add [constraint constraint[symbol]] [index](column,...) | 在指定的一列或几列添加一个唯一的表索引,是针对 使用外键的innoDB表 |
add [constraint[symbol]] foreign key [index](index_col,...) [reference_definition] | 为一个innoDB表添加外键 |
alter [column] column {set default value|drop default} | 添加或删除特定列的默认值 |
change[column] column new_column_description | 修改列的描述,可以改变列的名称 |
modify[column] column_description | 类似change,可用来修改列的类型 |
drop[column] column | 删除指定列 |
drop primary key | 删除主索引 |
drop index index | 删除指定的索引 |
drop foreign key | 删除外键 |
disable keys | 禁止索引更新 |
enable keys | 开启索引更新 |
rename [as] new_table_name | 重命名表名 |
order by col_name | 以特定顺序的行重新创建表 |
convert to character set cs collcate c | 将所有文本列转换成指定字符集和排序 |
[default] character set cs collcate c | 设置默认的字符集和排序 |
disable tablespace | 删除innodb表的可能表空间 |
import tablespace | 为innodb表重新创建可能的表空间文件 |
table_options | 允许重新设置表选项 |
二、示例
1、修改字段类型、字段名、字段注释、字段默认值
#修改字段类型、字段注释、字段默认值
ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度 新默认值 新注释;
-- COLUMN关键字可以省略不写
alter table box modify column boxnum varchar(40) not null comment '编号'
2、修改字段名
mysql修改字段名:
ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型;
alter table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column1 column2; -- 报错
alter table box CHANGE column boxnum boxid varchar(30) not null comment '编号'
3、修改表名
ALTER TABLE 旧表名 RENAME TO 新表名
alter table hezi rename to box
4、修改表的注释
ALTER TABLE 表名 COMMENT '新注释'
alter table box comment '座位表'
5、在指定的位置插入新字段
ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写
alter table box add column boxroom varchar(30) not null comment '座位空间' after boxname
6、增加一个字段
ALTER TABLE 表名 ADD COLUMN newname 数据类型 数据长度 默认值 注释
//增加一个字段,默认为空
alter table box add column boxroom int 10 default null comment '座位空间'
//增加一个字段,默认不为空
alter table box add column boxroom int 10 not null comment '座位空间'
7、删除字段
ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
--COLUMN关键字可以省略不写
alter table box drop boxroom
相关推荐
Centos7的yum源中没有mysql,为了解决这个问题,我们需要先下载mysql的repo源。
一、下载mysql的repo源并安装
wget http://repo.mysql.com/mysq
如果主库已经投入使用了,此时如果需要主从同步,需要导出所表结构和数据,然后导入到从库中。这时需要注意修改/var/lib/mysql/auto.cnf中uuid。
master配
一、事务的ACID
1、Atomicity原子性
Transactions are often composed of multiple statements. Atomicity guarantee
一、登录mysql
mysql --version
-查看Mysql版本
mysql -h hostname -u username -p
-h:运行mysql服务器的机器,如果正在该机器上运行此命令
一、语法
select [optioins] items
[into file_details]
from tables
[where conditions]
[group by gr
一、语法
update [low_priority] [ignore] tablename
set column1=expression1,...
[where condition]
[order b