Menyelesaikan Masalah Penambahan Kunci Asing pada Jadual
Apabila cuba menambah kunci asing pada jadual sedia ada bernama "katalog", mesej ralat mungkin ditemui: "Kod Ralat: 1005. Tidak boleh membuat jadual 'mytable.#sql-7fb1_7d3a' (errno: 150)."
Punca:
-
Ralat sintaks dalam pernyataan ALTER TABLE: Sintaks yang disediakan termasuk yang salah rujukan kepada jadual mytable.#sql-7fb1_7d3a bukannya katalog.
-
Rujukan tiada atau tidak sah kepada jadual yang dirujuk: Pastikan jadual yang dirujuk (Sprache dalam kes ini) wujud dan mempunyai lajur yang sepadan yang sesuai (ID dalam kes ini).
-
Ketidakserasian antara jadual dan atribut lajur rujukan: Sahkan bahawa jenis data dan kekangan lajur kunci asing dan lajur yang dirujuk adalah serasi.
Penyelesaian:
- Betulkan sintaks dalam pernyataan ALTER TABLE untuk merujuk nama jadual yang betul, katalog.
- Pastikan jadual yang dirujuk, Sprache, wujud dengan lajur ID yang sepadan dengan kekangan kunci asing.
- Sahkan bahawa jenis data dan kekangan lajur kunci asing (Sprache dalam kes ini) sepadan dengan lajur yang dirujuk (ID dalam Sprache) dalam jadual yang dirujuk .
Contoh:
Untuk berjaya menambah kunci asing, gunakan pernyataan ALTER TABLE yang diperbetulkan berikut:
ALTER TABLE katalog
ADD CONSTRAINT `fk_katalog_sprache`
FOREIGN KEY (`Sprache`)
REFERENCES `Sprache` (`ID`)
ON DELETE SET NULL
ON UPDATE SET NULL;
Salin selepas log masuk
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Kod Ralat: 1005' Apabila Menambah Kunci Asing pada Jadual MySQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!