create table pk_uk(id integer not null, id1 integer not null );
id컬럼에는 unique key를 걸고, id1에는 primary key를 걸려고 합니다.
그래서 이 테이블에 대한 key정보를 카탈로그뷰인 syscat.tabconst와 syscat.keycoluse에서 조인해서 가지고 오려고 하는데요.
왜냐하면 제가 필요한 정보인 key 타입은 tabconst에는 있지만, keycoluse에는 없고, column 이름은 keycoluse에는 있는데 tabconst에는 없어서 조인하려고 합니다.
db2 "SELECT SYSCAT.keycoluse.TABNAME, SYSCAT.keycoluse.CONSTNAME, SYSCAT.KEYCOLUSE.COLNAME, syscat.tabconst.tabschema, syscat.tabconst.type
FROM SYSCAT.KEYCOLUSE inner join SYSCAT.TABCONST ON syscat.keycoluse.TABname = syscat.tabconst.tabname where syscat.tabconst.tabname ='PK_UK' and syscat.tabconst.tabschema = 'DOHEE'"
TABNAME CONSTNAME COLNAME TABSCHEMA TYPE
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ----
PK_UK SQL080523195822240 ID DOHEE U
PK_UK SQL080523195822240 ID DOHEE P
PK_UK SQL080523195836970 ID1 DOHEE U
PK_UK SQL080523195836970 ID1 DOHEE P
4 record(s) selected.
위의 쿼리를 실행하면 이렇게 4개의 행이 나옵니다. 근데 여기서 첫번째행과 마지막 행만 검색이 되어야 하는데 중간 두행이 불필요하게 나오고 타입도 틀리게 나오네요 ㅠㅠ 딱 제가 원하는 2행만 나오게 검색하려면 어떻게 해야 하나요..
|