修改oracle的約束欄位

greenteazsh發表於2011-09-19
修改oracle中具有約束的欄位時,按一般的方式進行修改,通常不起作用,如alter:alter table t_table modify (state  char(2) check (state in(0,1,2,-1,3)));,這樣的話,不會有效果。
正確的方式是,先drop原有的約束,再alter。
1、查詢表上欄位的原有約束的名字
      select constraint_name from user_cons_columns where table_name = 'T_TABLE' and column_name = 'STATE';
2、drop原有約束
       alter table t_name drop constraint SYS_C006828;
3、更新欄位約束
       alter table t_table modify (state  char(2) check (state in(0,1,2,-1,3)));
 
commit;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9521459/viewspace-707876/,如需轉載,請註明出處,否則將追究法律責任。

相關文章