更改表結構 新增 修改表字段,並保留原資料

2021-10-09 03:59:47 字數 1636 閱讀 6089

一、僅改欄位名(字段型別)

dw_table表中要修改欄位ggsn為new_g,字段型別:varchar(20)->varchar(39)

1.建立乙個備份表

原表:dw_table,備份表:dw_table_bf

create table dw_table_bf select *

from dw_table;

2.清空原表資料

truncate table dw_table;
3.刪除欄位ggsn

alter table dw_table drop column ggsn;
4.新增新字段在指定原位置(op_time後面)

alter table dw_table add column new_g varchar(39

) after op_time;

5.把原資料插入

insert into dw_table select *

from dw_table_bf;

6.刪除備份表

drop table dw_table_bf;
二、新增字段

dw_table表中新增欄位名及型別為 :g_num bigint(21)

方法1:

①建立乙個備份表

原表:dw_table,備份表:dw_table_bf

create table dw_table_bf select *

from dw_table;

②刪除表

drop table dw_table;
③建立新錶

create table dw_table

(op_time date

,new_g varchar(39

),g_num bigint(21

),all_num bigint(21

));

④插入原資料 選定原欄位

insert into dw_table

(op_time

,new_g

,all_num

)select *

from dw_table_bf; #此處select * 即對應以上三個字段

#select

#op_time

#,new_g

#,all_num

#from dw_table_bf; #可限定插回部分原資料,但注意一定要與上面插入的字段相對應

方法2:

直接在原表中新增(new_g後面 )

alter table dw_table add column g_num bigint(21

) after new_g;

注:方法2新增多個欄位時 一一執行alter語句來新增。

附:處理多個字段

alter table tablename drop column age,drop column grade;

Hive 新增 更改表字段型別

新增字段表 alter table 表名 add columns 欄位名 資料型別 alter table table name add columns c time string comment 當前時間 正確,新增在最後 alter table table name change c time ...

mysql 修改 新增 刪除 表字段

mysql 修改 新增 刪除 表字段 新增表的字段 alter table 表名 add 欄位名 欄位的型別 例子 alter table table1 add transactor varchar 10 not null alter table table1 add id int unsigned...

MySql修改表 字段型別 ,新增新列並賦預設值

新增字段 alter table tab1 addcolumn create user varchar 50 default admin comment 新增人 add column create time datetime default now comment 新增時間 修改字段注釋 alter...