복붙노트

[SQL] 오라클 SQL의 테이블에 대한 모든 제약 조건의 이름을 표시

SQL

오라클 SQL의 테이블에 대한 모든 제약 조건의 이름을 표시

나는 오라클 SQL에서 만든 여러 테이블에 대한 제약 조건의 각각의 이름을 정의했습니다.

문제는 그것이 내가 잊어 버린 각 제약에 대한 공급하고 그 이름을 알 수있는 특정 테이블 I 필요의 열에 대한 제약 조건을 삭제하는 것입니다.

어떻게 내가 테이블의 각 열에 대해 지정했는지 제약의 이름을 모두 나열합니까?

이렇게위한 SQL 문이 있습니까?

해결법

  1. ==============================

    1.당신은 특히 USER_CONS_COLUMNS 테이블 열 및 해당 제약 조건을 볼보기, 데이터 사전을 조회해야합니다

    당신은 특히 USER_CONS_COLUMNS 테이블 열 및 해당 제약 조건을 볼보기, 데이터 사전을 조회해야합니다

    SELECT *
      FROM user_cons_columns
     WHERE table_name = '<your table name>';
    

    특별히 다음 테이블 이름은 대문자로 디폴트됩니다 (따옴표 사용) 소문자 이름으로 테이블을 생성하지 않는 참고로, 그래서 귀하의 질의에 그렇게되어 있는지 확인합니다.

    그런 다음 제약 조건에 대한 자세한 정보를 확인하려면 자체는 USER_CONSTRAINTS보기 조회 :

    SELECT *
      FROM user_constraints
     WHERE table_name = '<your table name>'
       AND constraint_name = '<your constraint name>';
    

    테이블이 기본 스키마가 아닌 스키마에 보관 유지되고있는 경우, 당신은 함께 의견을 교체해야 할 수도 있습니다 :

    all_cons_columns
    

    all_constraints
    

    WHERE 절에 추가 :

       AND owner = '<schema owner of the table>'
    
  2. ==============================

    2.

    SELECT * FROM USER_CONSTRAINTS
    
  3. ==============================

    3.어쩌면이 도움이 될 수 있습니다 :

    어쩌면이 도움이 될 수 있습니다 :

    SELECT constraint_name, constraint_type, column_name
    from user_constraints natural join user_cons_columns
    where table_name = "my_table_name";
    

    건배

  4. ==============================

    4.

    select constraint_name,constraint_type 
    from user_constraints
    where table_name = 'YOUR TABLE NAME';
    

    참고 : 테이블 이름은 대문자로해야한다.

    혹시 다음 테이블의 이름을 모른다,

    select constraint_name,constraint_type,table_name 
    from user_constraints;
    
  5. ==============================

    5.종종 기업의 데이터베이스는 여러 사용자가 내가 올바른 항상 아니에요 :

    종종 기업의 데이터베이스는 여러 사용자가 내가 올바른 항상 아니에요 :

    SELECT * FROM ALL_CONSTRAINTS WHERE table_name = 'YOUR TABLE NAME' ;
    

    Oracle 문서에서 선택

  6. ==============================

    6.아래의 두 명령 중 하나 사용합니다. 모든 대문자 여야합니다. 테이블 이름은 따옴표로 포장되어야합니다 :

    아래의 두 명령 중 하나 사용합니다. 모든 대문자 여야합니다. 테이블 이름은 따옴표로 포장되어야합니다 :

    --SEE THE CONSTRAINTS ON A TABLE
    SELECT COLUMN_NAME, CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME = 'TBL_CUSTOMER';
    
    --OR FOR LESS DETAIL
    SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'TBL_CUSTOMER';
    
  7. from https://stackoverflow.com/questions/11879217/display-names-of-all-constraints-for-a-table-in-oracle-sql by cc-by-sa and MIT license