1. 程式人生 > >Oracle字段增刪改方法總結

Oracle字段增刪改方法總結

不兼容 name varchar2 rim 增刪改 HA table del alter

一、修改字段的語法:alter table tablename modify (字段名 類型 [default value][null/not null],….);
有一個表名為tb,字段段名為name,數據類型nchar(20)。
1、alter table tb modify (name nvarchar2(20));

2、假設字段有數據,則改為varchar2(40)執行時會彈出:“ORA-01439:要更改數據類型,則要修改的列必須為空”,這時要用下面方法來解決這個問題:

/*修改原字段名name為name_tmp*/
alter table tb rename column name to name_tmp;

/*增加一個和原字段名同名的字段name*/
alter table tb add name varchar2(40);

/*將原字段name_tmp數據更新到增加的字段name*/
update tb set name=trim(name_tmp);

/*更新完,刪除原字段name_tmp*/
alter table tb drop column name_tmp;

總結:
1、當字段沒有數據或者要修改的新類型和原類型兼容時,可以直接modify修改。
2、當字段有數據並用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。

二、新增字段

新增字段的語法:alter table tablename add(字段名 類型 [default value][null/not null],….);
1、增加一個字段:
alter table test1 add (name varchar2(30) default ‘無名氏’ not null);

2、使用一個SQL語句同時添加三個字段:
alter table test1 add (name varchar2(30) default ‘無名氏’ not null,
age integer default 22 not null, has_money number(9,2) );

三、刪除字段
刪除一個字段的語法: alter table tablename drop column 字段名
刪除多個字段: alter table tablename drop (字段名1,字段名2)

Oracle字段增刪改方法總結