Mungkin ada INDEX
terkait dengan PRIMARY KEY CONSTRAINT
, dan juga disebut sebagai PK_B
.
Anda dapat memeriksanya sebagai :
SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';
Jika itu benar, maka lakukan :
ALTER INDEX "PK_B" RENAME TO "PK_XYZ";
Pembaruan :Mengenai ALTER INDEX
pernyataan, beberapa poin penting seperti yang disebutkan oleh Justin di komentar
Oracle secara implisit membuat UNIQUE
index untuk mendukung PRIMARY KEY CONSTRAINT
. Karena, indeks memiliki nama yang sama dengan nama kunci utama, dan sekarang setelah kunci utama diubah, ini lebih baik untuk menjatuhkan dan membuat ulang indeks lagi sesuai dengan definisi kunci utama lama.
Kesimpulan saya :
- Batasan kunci utama diterapkan melalui indeks unik.
- Jika Oracle sudah menemukan indeks – unik atau tidak unik – ia menggunakannya untuk kunci utama.
- Jika indeks awalnya dibuat sebagai non-unik, indeks akan terus ditampilkan sebagai non-unik, namun sebenarnya akan menjadi indeks unik.
Demonstrasi yang bagus dan cukup detail pada aspek lain juga, oleh Arup :Kunci Utama Menjamin Keunikan? Pikirkan Lagi.