Bagaimanakah caranya agar kita bisa mengetahui informasi kolom apa saja yang menjadi Primary Key di suatu tabel? Hal ini menjadi issue ketika membangun aplikasi Convert data dari Oracle ke format XML. Berikut ini adalah query untuk melihat list kolom yang digunakan sebagai Primary Key pada suatu tabel tertentu. Sebagai contoh kasus, kita akan melihat semua kolom yang menjadi Primary Key pada tabel-tabel yang dimiliki oleh user Scott
SQL> CONNECT SCOTT/TIGER Connected. SQL> COL TABLE_NAME FOR A15 SQL> COL COLUMN_NAME FOR A15 SQL> SELECT A.TABLE_NAME, 2 A.COLUMN_NAME, 3 B.CONSTRAINT_TYPE, 4 B.CONSTRAINT_NAME 5 FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B 6 WHERE A.TABLE_NAME= B.TABLE_NAME 7 AND A.CONSTRAINT_NAME=B.CONSTRAINT_NAME 8 AND B.CONSTRAINT_TYPE='P'; TABLE_NAME COLUMN_NAME C CONSTRAINT_NAME ----------- ---------- - ---------- DEPT DEPTNO P PK_DEPT EMP EMPNO P PK_EMP
Pada line 8 terdapat filtering agar data yang ditampilkan hanya constraint yang bertipe Primary key. Dari hasil query diatas dapat diketahui nama tabel, nama kolum yang menjadi Primary Key, tipe Constraint yaitu ‘P’ yang merupakan kode untuk Primary Key, dan terakhir adalah nama Constraint.