转储MySQL中的特定表和其他表中的相关数据

时间:2019-03-01 11:59:09

标签: php mysql relational-database

我目前正在用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的列中。

有人可以建议一些解决方法吗?

0 个答案:

没有答案