MySQL数据库的选择性导出

时间:2010-02-02 19:54:00

标签: sql mysql export mysqldump

我有一个跨越许多不同用户的网络应用程序,每个用户都有关于他们能够看到的内容的选择权限。该应用程序构建在MySQL数据库之上。

我有兴趣向我的“超级用户”提供的一个功能是对所有数据进行sql转储,以便它们可以运行并使用它自己做事。现在我不能只使用mysqldump,因为有些东西属于其他用户,下载时不应该让任何其他人使用。

有没有其他简单的方法可以将数据输入和输出MySQL,允许您有选择地指定要导出的内容,而无需跳过各种环节?请注意,我需要在查询级别进行控制 - 即能够指定表列表是不够的。在一个理想的世界中,这样的工具会根据外键的遍历自动找到所有关系,但如果我必须在表级别编写查询,我愿意,只要其他人很容易将数据恢复到mysql中没有太多麻烦。

任何人都知道这样的工具是否存在,或者我是否处于“滚动我自己的”领域?

2 个答案:

答案 0 :(得分:5)

Mysqldump确实有一个“--where”标志,可用于有选择地返回行。我认为你应该能够做到这样的事情:

mysqldump --where="foreign_key_id=5"

哪些应仅返回特定行,MySQL Site

上的更多文档

但是,我不确定您是否会以逗号分隔值文件的形式进行导出。 CSV文件可以导回MySQL,并为您的用户提供许多其他选项来处理他们的数据(电子表格,其他RDBMS,文本分析)。

答案 1 :(得分:0)

这是一个可以帮助您将数据导出到CSV / Excel文件但不导入数据的工具。它有一个权限管理,应该提供您所需的必要访问权限。

您可以在此处找到它:https://github.com/mpetcu/report-manager