Mysqldump表不包括某些字段


14

有没有一种方法可以mysqldump没有某些字段的表?

让我解释一下:
我有一个名为的MySQL数据库tests。在tests我有3个表:USERTOTOTATA。我只是想mysqldump的表的一些领域USER,因此不包括像一些领域mailip_login等等。

我怎样才能做到这一点?

Answers:


13

尝试这个:

SELECT column1, column2, column10
FROM USER
INTO OUTFILE "c:/user.csv"
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY "\n";

有关更多选项,请阅读文档页面


8

不能直接用mysqldump完成。但是,您可以创建一个临时表或不包含相关数据的视图,然后转储生成的数据。对于视图,我认为您必须使用INTO OUTFILE而不是mysqldump来获取所需的数据,但是使用视图而不是临时表的优点是不占用DBMS中的任何额外空间。

另一个选择是为文件创建一个解析器,以剥离不需要的字段。坦率地说,这可能会很快变得很复杂-也就是说,假设您要创建一个在面对多字节字符,转义的字符串分隔符等的情况下很健壮的解析器,它将变得很复杂。 -time-use的情况下,它可能仍然是有效的选项。


0

您也可以使用Phpmyadmin执行此操作。创建查询以选择所需的字段,然后选择页面底部的“导出”功能(这将导出查询结果,而不是整个表),然后选择“自定义”选项。然后,您可以选择SQL作为格式-如果需要,可以创建一系列UPDATE查询而不是INSERTS。通常可以是完成此类操作的快速方法。


0

许多数据库管理工具都可以执行自定义导入。特别是,我使用Toad for MySQL通过使用自动增量PK在表之间传输数据来完成此任务。

我使用导出向导将查询结果保存到Excel。

然后,您可以使用“导入向导”,通过将“源字段”设置为以下内容来排除列:跳过此列

导入向导

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.