ORACLE-テーブル列の変更/テーブル制約の変更

1678 ワード

表の列の変更


表の作成:CREATE
sql>CREATE TABLE test(num NUMBER);
コメントの追加:ADD
sql>ALTER TABLE test ADD(name VARCHAR2(10));
修正コラム:MODIFY
sql>ALTER TABLE test MODIFY(name VARCHAR2(20));
コラム名変更:RENAME COLUMAN a TO b
sql>ALTER TABLE test RENAME COLUMN name TO myname;
列の削除:DROPまたはDROP COLUMN
sql>ALTER TABLE test DROP(myname);
혹은
ALTER TABLE test DROP COLUMN myname;

表制約の変更


表の作成:CREATE
sql>CREATE TABLE dept3(deptno NUMBER(2), dname VARCHAR2(15), loc 
CHAR(1) ); 
一般制約の追加(テーブル・レベル):ADD CONTRAINT
SQL> ALTER TABLE test
  2  ADD CONSTRAINT test_code_pk PRIMARY KEY(code);    
  // 괄호 안 : 변경할 칼럼명 기입
NOT NULL制約の追加(表レベル):MODIFYコラム名CONSTRINT
普通のスジョンじゃない!!制約がNOT NULLの場合MODIFY
sql>ALTER TABLE dept3
MODIFY dname CONSTRAINT dept3_dname_nn NOT NULL;
  • MODIFYの後にコラム名を書いたので、最後にカッコでもう一度書きましょう!!
  • 無効な制約:DISABLE CONTRAINT
  • 開発時に複数のテストが行われ、制約条件により不便な場合は
  • を一時的に無効にすることができる.
    SQL> ALTER TABLE test
      2  DISABLE CONSTRAINT test_code_pk;
    使用可能な制約:ENABLE CONTRAINT
    SQL> ALTER TABLE test
      2  ENABLE CONSTRAINT test_code_pk;
    削除制約:DROP CONTRAINT
    sql>ALTER TABLE dept3 DROP CONSTRAINT dept3_deptno_pk;
  • 拘束条件は変更できません!!!
    変更が必要な場合は、
  • を削除して再作成する必要があります.