2010-02-02 225 views
8

我有一个跨越许多不同用户的web应用程序,每个用户都有选择权限可以看到他们的内容。该应用程序建立在MySQL数据库之上。MySQL数据库的选择性导出

我有兴趣提供给我的“高级用户”的一个特性是所有数据的一个sql转储,以便他们可以跑掉并用它做自己的事情。现在我不能只使用mysqldump,因为有些属于其他用户的东西不应该在下载时供其他用户使用。

是否有任何其他简单的方法来获取数据进出MySQL,允许您有选择地指定要导出的内容,而不必跳过各种类型的箍?请注意,我需要在查询级别进行控制 - 即能够指定表的列表是不够的。在一个理想的世界里,这样一个工具可以自动找到所有基于遍历外键的关系,但是如果我必须在表级别编写查询,我愿意,只要其他人能够轻松地将数据返回到mysql没有太多麻烦。

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

回答

5

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

mysqldump --where="foreign_key_id=5" 

应返回只有那些特定的行,更多的文档上MySQL Site

但是,我不知道你会不会进一步向前进做一个导出为逗号分隔值文件。 CSV文件可以导入到MySQL中,并为用户提供许多其他选项来处理数据(电子表格,其他RDBMS,文本分析)。

+0

在csvs上是正确的,尽管我们至少在讨论20多张表格。 mysql是否支持批量导入csv数据? – Cory 2010-02-02 20:36:32

+0

是的,如果你使用mysqlimport工具,它会根据你输入的mysqlimport的文件名自动创建表格,地址为http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html – 2010-02-02 21:51:30

0

这是一个可以帮助您将数据导出到CSV/Excel文件但不导入数据的工具。它有一个权限管理,可以提供您需要的必要访问权限。您可以在这里找到它:https://github.com/mpetcu/report-manager