Mamy bazę danych z kilkuset tabel. Tabele korzystające z foreign_keys używają INNODB.MySQL znaleźć nieprawidłowe klucze obce
Czasami przesyłamy dane (poszczególne tabele przy użyciu mysqldump
) między naszą bazą danych o programowaniu, scenariuszem i produkcją. mysqldump
wyłącza sprawdzanie klucza obcego w celu ułatwienia importowania danych.
Z czasem niektóre nasze nieprodukcyjne bazy danych zawierają kilka osieroconych wpisów.
Chciałem napisać skrypt, który znajdowałby i wykrywał wszystkie nieprawidłowe (klucze wskazujące brakujące rekordy) klucze obce dla całej bazy danych MySQL.
Wiem, że mogę napisać zapytanie, aby sprawdzić każdą tabelę i przycisk jeden po drugim, ale myślałem, że może już istnieć narzędzie do tego.
Sprawdziłbym przed napisaniem takiego skryptu, aby sprawdzić, czy już tam jest.
Wyszukiwał google nieco ... zaskakująco nic nie znalazłem.
Co masz na myśli, "nieważny"? Osierocone rekordy? tabele z FK, które wskazują tabele, które już nie istnieją? –
Możesz mieć swoją bazę automatycznie to zrobić (w zależności od tego, jakiego silnika bazy danych używasz) i mieć go NA KASKADOWANIU, aby integralność referencyjna była zachowana. –
Oprócz stefanów należy pamiętać, że można unieważnić dziecko lub zaktualizować je, nie trzeba go usuwać. – TomDunning