- 修改字段名、字段類型、類型長度、默認(rèn)值、注釋
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新數(shù)據(jù)類型;
alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注釋';
-- 正確,能修改字段名、字段類型、類型長度、默認(rèn)值、注釋
alter table table1 change column2 column2 varchar(100) DEFAULT 1.2 COMMENT '注釋';
-- 正確,此時(shí)字段名稱沒有改變,能修改字段類型、類型長度、默認(rèn)值、注釋
alter table table1 change column1 column2;
-- 報(bào)錯(cuò)
使用change關(guān)鍵字,需要寫2個(gè)字段
- 修改字段類型、類型長度、默認(rèn)值、注釋
ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新數(shù)據(jù)類型 新類型長度 新默認(rèn)值 新注釋;
-- COLUMN可以省略
alter table table1 modify column column1 decimal(10,1) DEFAULT NULL COMMENT '注釋';
-- 正確,能修改字段類型、類型長度、默認(rèn)值、注釋
alter table table1 modify column1 decimal(10,2) DEFAULT NULL COMMENT '注釋';
-- 正確,能修改字段類型、類型長度、默認(rèn)值、注釋
使用modify關(guān)鍵字,寫1個(gè)字段即可
- 修改表名
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)
- 修改表的注釋
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 '創(chuàng)建時(shí)間',
`updated_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名單表'
- 在指定位置添加新字段(如果不使用after,默認(rèn)是在最后加字段)
ALTER TABLE 表名 ADD [COLUMN] 字段名 字段類型 是否可為空 COMMENT '注釋' AFTER 指定某字段 ;
--COLUMN關(guān)鍵字可以省略不寫
mysql> alter table white_user_new add column erp varchar(50) not null comment 'erp賬號(hào)' after name ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
--在name字段后面添加erp字段
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賬號(hào)',
`created_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
`updated_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
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 '手機(jī)號(hào)碼' before position ;
--報(bào)錯(cuò),在position字段前添加mobile字段,不能使用before關(guān)鍵字
- 刪除字段
ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
-- COLUMN關(guān)鍵字可以省略不寫
mysql> alter table white_user_new drop column position ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
-- 刪除position字段
mysql> alter table white_user_new drop erp ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
-- 刪除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 '姓名',
`created_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
`updated_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名單表'
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處: