Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Jadual dengan Kekunci Asing Merujuk Lajur Tertentu?

Bagaimana Mencari Jadual dengan Kekunci Asing Merujuk Lajur Tertentu?

Mary-Kate Olsen
Lepaskan: 2024-12-16 10:19:10
asal
410 orang telah melayarinya

How to Find Tables with Foreign Keys Referencing a Specific Column?

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`)
);
Salin selepas log masuk

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';
Salin selepas log masuk

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';
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan