Pernahkah kita mencoba menghapus foreign key tetapi ternyata tidak berhasil dan menampilkan error seperti berikut:
#1025 - Error on rename of '.\db_tokobuku\tb_buku' to '.\db_tokobuku\#sql2-1654-68' (errno: 152)
Padahal query untuk menghapus sudah benar, seperti ini:
ALTER TABLE tb_buku DROP FOREIGN KEY id_penerbit
Terus apa masalahnya ?
Ternyata e ternyata, kita tidak dapat menghapus Foreign Key menggunakan nama field aslinya, untuk menghapus kita perlu mengetahui nama lainnya.
Berikut cara untuk mengetahui nama lain dari Foreign Key tersebut:
SHOW CREATE TABLE <nama tabel>;
misal:
SHOW CREATE TABLE tb_buku;
berikut hasilnya:
Terus sebenarnya apa nama aslinya ?
Coba lihat pada query tersebut setelah CONSTRAINT, dan dari contoh di atas kita dapat mengambil kesimpulan bahwa namanya adalah tb_buku_ibfk_1
Sekarang coba lakukan penghapusan dengan query berikut:
ALTER TABLE <nama table> DROP FOREIGN KEY <nama lain fieldnya>
misal:
ALTER TABLE tb_buku DROP FOREIGN KEY tb_buku_ibfk_1
dan taaaaraaaaa, FOREIGN KEY pun berhasil dihapus tanpa ada error lagi.. :-D
Sekarang coba lakukan penghapusan dengan query berikut:
ALTER TABLE <nama table> DROP FOREIGN KEY <nama lain fieldnya>
misal:
ALTER TABLE tb_buku DROP FOREIGN KEY tb_buku_ibfk_1
dan taaaaraaaaa, FOREIGN KEY pun berhasil dihapus tanpa ada error lagi.. :-D
No comments:
Write komentar