制約(制約)

カラム法から不要なデータを、予防変更または削除制約を挿入します。

Tebiroの制約タイプ

制約 説明
主キー

一意キーとNOT NULL制約の特徴。

主キーとして列セットは、NULL値を持つことはできません。

一意キー 値がNULLでない限り、表内の行には、列に同じ値を持つことはできません。

参照整合性

参照整合性

主キーまたはテーブルの一意のキーを指します。

これは、主キーまたは一意キーテーブルを参照します。

NOT NULL

テーブルの行は、この列のNULL値を持つことはできません。

表レベルの制約を設定することはできません。

小切手

値を挿入または変更することができる前に、特定の条件が満たされなければならない制約。

列には、複数の制約を持つことができます。

1.宣言制約(制約の宣言)TABLE DEPTをCREATE


      DEPTNO NUMBER PRIMARY KEY、
      DEPTNAME VARCHAR(20)、
      PDEPTNO NUMBER 
  TABLESPACE my_space 
  PCTFREE 5 INITRANS 3。

CREATE TABLE EMP 
      EMPNO NUMBER PRIMARY KEY、
      ENAME VARCHAR(16)NOT NULL、
      ADDR VARCHAR(24)、
      SALARY NUMBER、
      DEPTNO NUMBER、CONSTRAINT SALARY_MINチェック(SALARY> = 10000)、
      CONSTRAINT DEPTNO_REF FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO )
  TABLESPACE my_space 
  PCTFREE 5 INITRANS 3。宣言制約-カラム単位は表TEMP_PRODをCREATE 
      





  PROD_ID NUMBER(6)CONSTRAINT PROD_ID_PK主キー、
  PROD_NAMEのVARCHAR2(50)制約prod_name_nnないヌル、
  prod_cost VARCHAR2(30)制約prod_cost_nn NOT NULL、
  prod_pid数(6)、
  prod_date日付制約prod_date NOT NULL
)。

制約宣言 - 表単位

表TEMP_PROD CREATE 
       PROD_ID NUMBER(6)、
       PROD_NAME VARCHAR2(50)制約PROD_NAME_NN NOT NULL、
       PROD_COST VARCHAR2(30)制約PROD_COST_NN NOT NULL、
       PROD_PID NUMBER(6)、
       PROD_DATE日付CONSTRAINT PROD_DATE_NN NOT NULL、CONSTRAINT PROD_ID_PK PRIMARY KEY(PROD_ID、 PROD_NAME));
       

制約の名前を変更します

ALTER TABLE EMP 
        RENAME CONSTRAINT EMP_PRI_KEY TO EMP_KEY。

新しい制約を追加する
ALTER TABLE EMP ADD制約salary_maxチェック(SALARY> = 5000)。
ALTER TABLE EMP ADD UNIQUE(ENAME、DEPTNO)。

制約の削除

ALTER TABLE EMP 
        DROP PRIMARY KEY ;
  ...主キー制約セットを削除します。...
 
ALTER TABLE EMP 
        DROP CONSTRAINT SALARY_MAX  ...その名をSALARY_MAXで制約を削除します。... 

约束状态(制約の状態)


変更制約の状態(修正制約状態)

 制約の状態

2つの制約の状態があります。

  • ENABLE

    宣言された制約は、テーブルに挿入または更新されたすべての行に適用されます。

    ENABLEは、2つの追加オプションがあります。

    オプション 説明
    検証

    制約状態がイネーブルである場合、行が挿入または更新されるたびに、テーブルに既に存在するすべての行が制約を満たさなければなりません。

    同時に、すべての行をチェックすると、データベースのパフォーマンスを向上させることができます。

    NOVALIDATE

    テーブルのすべての行は、彼らが制約を満たすかどうかを判断するためにチェックされません。行は、どちらかの後にチェックする必要があるか、彼らはすでに制約を満たす必要があります。

    これは、テーブルの行を頻繁にチェックする必要がないため、データベースのパフォーマンスを向上させることができます。

    しかしながら、それらのインデックスの特性にPRIMARY KEYとUNIQUE KEY制約は、常に彼らはNOVALIDATEオプションを使用する場合であってもVALIDATEを使用していたかのようにチェックされます。

  • DISABLE

    宣言制約が行に適用されていません。同時に多数の行を挿入または更新するとき、作業が終了するまでDISABLEを使用すると便利ですし、その後ENABLE使用しています。これは、データベースのパフォーマンスを向上させることができます。

    ユーザーはtbLoader、tbImportユーティリティ、またはその他のバッチ・プログラムを使用して、一度に多くの行を挿入または更新することができます。テーブルの行は、彼らが制約を満たすかどうかを判断するためにチェックする必要がないので、これはデータベースのパフォーマンスを向上させることができます。

    DISABLEは、以下の追加オプションを使用することができます。

    オプション 説明
    検証 制約にインデックスを削除し、拘束された列のいずれかの変更を許可していません。
    NOVALIDATE 任意のオプションを指定しないと同じです。

制約状態の変更 - ENABLE

ALTER TABLE EMP MODIFY CONSTRAINT EMP_UNIQUE ENABLE; 
ALTER TABLE EMP修正制約emp_unique可能。

制約状態の変更 - DISABLE

ALTER TABLE EMP MODIFY PRIMARY KEY DISABLE。

 制約状態の変更 - VALIDATE

ALTER TABLE EMP MODIFY CONSTRAINT SALARY_MINはNOVALIDATEをENABLE; 

制約データの表示(制約データを参照してください)

静的ビュー 説明
DBA_CONSTRAINTS Tibero内のすべての制約に関する情報。
USER_CONSTRAINTS 現在のユーザーに属しているすべての制約に関する情報。
ALL_CONSTRAINTS 現在のユーザーがアクセスできるすべての制約に関する情報。
DBA_CONS_COLUMNS Tibero内の制約の列に関する情報。
USER_CONS_COLUMNS 現在のユーザーに属している制約の列に関する情報。
ALL_CONS_COLUMNS 現在のユーザーがアクセスすることができ制約の列に関する情報。














 

おすすめ

転載: www.cnblogs.com/zykLove/p/12132929.html