Saya punya tabel yang kunci utamanya direferensikan di beberapa tabel lain sebagai kunci asing. Sebagai contoh:
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`)
)
Sekarang, saya tidak tahu berapa banyak tabel yang ada di database yang berisi kunci asing ke dalam X seperti tabel Y dan Z. Apakah ada query SQL yang bisa saya gunakan untuk kembali:
- Daftar tabel yang memiliki kunci asing ke X
- DAN tabel mana yang benar-benar memiliki nilai dalam kunci asing
mysql
foreign-keys
Mel
sumber
sumber
Manual Referensi MySQL 5.5: "InnoDB dan FOREIGN KEY Kendala"
sumber
Solusi ini tidak hanya akan menampilkan semua relasi tetapi juga nama kendala, yang diperlukan dalam beberapa kasus (mis. Drop constraint):
Jika Anda ingin memeriksa tabel dalam database tertentu, tambahkan berikut ini:
sumber
Anda dapat menemukan semua informasi terkait skema di
information_schema
tabel yang diberi nama dengan bijak .Anda mungkin ingin memeriksa tabel
REFERENTIAL_CONSTRAINTS
danKEY_COLUMN_USAGE
. Yang pertama memberi tahu Anda tabel mana yang dirujuk oleh orang lain; yang terakhir akan memberi tahu Anda bagaimana bidang mereka terkait.sumber
Daftar semua kunci asing di db termasuk deskripsi
membatasi kolom tertentu dalam tabel tabel
sumber
Saya menulis sedikit bash onliner yang bisa Anda tulis ke skrip untuk mendapatkan hasil yang ramah:
mysql_references_to:
Jadi eksekusi:
mysql_references_to transaccion
(di mana transaccion adalah nama tabel acak) memberikan output seperti ini:sumber
Paling mudah:
1. Buka phpMyAdmin
2. Di sebelah kiri klik nama database
3. Di sudut kanan atas cari tab "Desainer"
Semua kendala akan ditampilkan di sana.
sumber