В настоящее время я пишу скрипт на PHP (Laravel) для выполнения сложного дампа данных.
Для контекста я извлекаю все данные о пользователях из таблицы users
.Чтобы найти все ссылки пользователей по всей базе данных, я написал запрос, чтобы получить все ссылки на таблицу пользователей следующим образом:
$userTableFks = DB::select(DB::raw("SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'users'"));
Из этого я могу найти все места, на которые user_id ссылается по всейбазы данных и экспортировать данные через базу данных для соответствующего пользователя:
foreach ($userTableFks as $userTableFk) {
exec("mysqldump --u=*** -p=*** mydbname $userTableFk->TABLE_NAME --where $userTableFk->column_name = $user->id");
}
Теперь я хотел бы вывести таблицу placements
, но таблица содержит внешние ключи из нескольких других таблиц - мне понадобятся соответствующиестроки из связанной таблицы (например, таблица schools
, которая содержит столбец school_id
в таблице мест размещения).
Может кто-нибудь предложить какие-либо методы для этого?