我目前正在用PHP(Laravel)编写脚本来进行复杂的数据转储。
对于上下文,我将从users
表中提取有关用户的所有数据。为了找到整个数据库中所有用户的引用,我编写了一个查询来获取对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
的列中。
有人可以建议一些解决方法吗?