sql >> データベース >  >> RDS >> Oracle

Oracleは制約を見つけます

    select * from all_constraints
    where owner = '<NAME>'
    and constraint_name = 'SYS_C00381400'
    /
    

    すべてのデータディクショナリビューと同様に、現在のスキーマと管理ユーザーのDBA_CONSTRAINTSビューを確認するだけの場合は、これはUSER_CONSTRAINTSビューです。

    制約名の構成は、システムによって生成された制約名を示します。たとえば、テーブル宣言でNOTNULLを指定した場合。または、実際には主キーまたは一意キーです。例:

    SQL> create table t23 (id number not null primary key)
      2  /
    
    Table created.
    
    SQL> select constraint_name, constraint_type
      2  from user_constraints
      3  where table_name = 'T23'
      4  /
    
    CONSTRAINT_NAME                C
    ------------------------------ -
    SYS_C00935190                  C
    SYS_C00935191                  P
    
    SQL>
    

    'C' チェックのために、'P' プライマリ用。

    一般に、リレーショナル制約に明示的な名前を付けることをお勧めします。たとえば、データベースが主キーのインデックスを作成する場合(その列がまだインデックスに登録されていない場合に作成されます)、制約名oonameをインデックスに使用します。 SYS_C00935191のような名前のインデックスでいっぱいのデータベースは必要ありません。 。

    正直なところ、ほとんどの人はNOTNULL制約に名前を付けることを気にしません。



    1. 2つの一意の列を持つ最新の日付で行を選択するSQL

    2. SQL関数からの出力を動的ファイル名でcsvファイル(COPY)に保存します

    3. SQLでの在庫平均コストの計算

    4. SQL-IF EXISTS UPDATE ELSE INSERT INTO