Mysql修改字段名、修改字段类型

Mysql修改字段名、修改字段类型1 修改字段类型 字段名 字段注释 类型长度 字段默认值 mysql 修改字段类型 能修改字段类型 类型长度 默认值 注释 对某字段进行修改 ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 新默认值 新注释 COLUMN 关键字可以省略不写 alter table table1 modify column

1 修改字段类型、字段名、字段注释、类型长度、字段默认值

mysql修改字段类型:	 
--能修改字段类型、类型长度、默认值、注释
--对某字段进行修改
ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度 新默认值 新注释;
-- COLUMN关键字可以省略不写

alter table table1 modify column column1 decimal(10,1) DEFAULT NULL COMMENT '注释'; -- 正常,能修改字段类型、类型长度、默认值、注释

alter table table1 modify column1 decimal(10,2) DEFAULT NULL COMMENT '注释';
-- 正常,能修改字段类型、类型长度、默认值、注释

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; -- 报错

mysql> alter table white_user change column name nick_name varchar(50) null comment '昵称'; -- 正确
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

2 修改表名

ALTER TABLE 旧表名 RENAME TO 新表名 ;

mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user |
+-------------------+
1 row in set (0.00 sec)



mysql> alter table white_user rename to white_user_new ;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user_new |
+-------------------+
1 row in set (0.00 sec)

3 修改表的注释

ALTER TABLE 表名 COMMENT '新注释'

mysql> alter table white_user_new comment '新表-白名单表' ;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table white_user_new ;
CREATE TABLE `white_user_new` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT '姓名',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`updated_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'

4 在指定位置插入新字段

ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写

mysql> alter table white_user_new add column erp varchar(50) not null comment 'erp账号' after name ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
--在name字段后面添加erp字段

mysql> show create table white_user_new ;
CREATE TABLE `white_user_new` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT '姓名',
`erp` varchar(50) NOT NULL COMMENT 'erp账号',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`updated_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'




mysql> alter table white_user_new add position varchar(50) not null comment '岗位' after name ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
--在name字段后面添加position字段。

mysql> show create table white_user_new ;
CREATE TABLE `white_user_new` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT '姓名',
`position` varchar(50) NOT NULL COMMENT '岗位',
`erp` varchar(50) NOT NULL COMMENT 'erp账号',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`updated_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'



mysql> alter table white_user_new add mobile varchar(50) not null comment '手机号码' before position ;
--报错,在position字段前添加mobile字段,不能使用before关键字

5 删除字段

ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
--COLUMN关键字可以省略不写

mysql> alter table white_user_new drop column position ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table white_user_new drop erp ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table white_user_new ;
CREATE TABLE `white_user_new` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT '姓名',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`updated_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'
编程小号
上一篇 2025-03-25 11:17
下一篇 2025-02-21 17:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/139625.html