Mencari Jadual dengan Kekunci Asing Merujuk Lajur Tertentu
Dalam pangkalan data hubungan, adalah perkara biasa untuk jadual mempunyai kunci asing yang merujuk kepada yang lain kunci utama jadual. Ini membolehkan perhubungan antara entiti diwujudkan dan dikuatkuasakan. Walau bagaimanapun, adalah sukar untuk menentukan jadual yang mempunyai kunci asing yang merujuk kepada lajur tertentu.
Untuk menangani cabaran ini, kami menerangkan kaedah untuk mengenal pasti jadual yang mempunyai kunci asing merujuk lajur jadual tertentu dan mempunyai nilai sebenar dalam kunci asing tersebut.
Pertimbangkan contoh skema pangkalan data berikut:
CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`X_id`) ); CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Y_id`), CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ); CREATE TABLE `Z` ( `Z_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Z_id`), CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) );
Dalam ini skema, kedua-dua jadual Y dan Z mempunyai kunci asing yang merujuk kepada lajur X_id jadual X. Untuk mendapatkan semula senarai jadual tersebut dan mengenal pasti yang mana mempunyai nilai dalam kunci asing:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';
Pertanyaan ini akan mengembalikan maklumat tentang semua jadual yang mempunyai kunci asing yang merujuk kepada lajur jadual yang ditentukan. Ia juga memastikan bahawa kunci asing mempunyai sekurang-kurangnya satu nilai yang berkaitan.
Untuk mengecilkan lagi hasil kepada pangkalan data tertentu, pertanyaan yang diubah suai berikut boleh digunakan:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id' AND TABLE_SCHEMA = 'your_database_name';
Di sini, your_database_name hendaklah digantikan dengan nama pangkalan data sebenar di mana jadual berada.
Atas ialah kandungan terperinci Bagaimana Mencari Jadual dengan Kekunci Asing Merujuk Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!