場景:在生產過程中有時候需要不同的環境中修改表字段,使用sql語句比較方便!
1 演示
--添加字段的語法 alter table tablename add (column datatype [default value][null/not null],….); --修改字段的語法 alter table tablename modify (column datatype [default value][null/not null],….); --刪除字段的語法 alter table tablename drop (column);
1.1 普通字段修改
增加字段:
alter table TRNDETAIL add (acplevel1 VARCHAR2(2) , paylevel1 VARCHAR2(2));
增加字段注釋:
comment on column TRNDETAIL.acplevel1 is ' --收款賬戶類別'; comment on column TRNDETAIL.paylevel1 is ' --付款賬戶類別';
修改字段:
alter table TMS_CORPIMG modify CORPIMG null;
刪除字段:
alter table TRNDETAIL drop (acplevel1, paylevel1 );
1.2 主鍵字段修改
在原有表基礎上增加主鍵的時候需要先刪除原有字段,再重新設置主鍵約束。
--刪除主鍵 ALTER TABLE TWS_ACCTVERIFY drop CONSTRAINT PK_TWSACCTVERIFY; --添加新的主鍵約束 alter table TWS_ACCTVERIFY add constraint PK_TWSACCTVERIFY primary key(SUBNODE, TRANSTYPE, SUBDATE, TRANSNO, SUBDAY);
1.3 刪除表中的數據
truncate table tablename
delete from tablename
delete方法最大的問題,當有標志字段時就有問題
一般建議盡可能使用delete去刪除表的字段,它具有選擇 性刪除的作用,所以常常delete from tablename where 條件
delete和truncate作用其實是一樣的,只是truncate后面不跟where條件句,它的作用是刪除表中所有的行(記錄)
兩者最大的區別就是delete是寫日志文件的,而truncate則不寫日志直接刪除,前者可恢復,而后者無法恢復,后者的危險性更高,所以一般不建議 使用truncate,常用delete
1
