使用mysqldump我可以备份我的数据库。但我的数据库有很多视图,有大量的数据,我不需要。我只想用数据备份真实的表。
目前我在做:
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
有没有办法只备份没有视图的真实表?
答案 0 :(得分:1)
视图不会在MySQL中存储任何数据。视图就像存储的查询,而不是存储的数据。视图没有内容,并且它不会增加备份的大小,而不会增加视图的定义的大小。也就是说,CREATE OR REPLACE VIEW
语句是唯一以与该视图相关的mysqldump输出结束的语句。
但要回答你的问题:不,没有特定的选项可以排除所有观点。
您可以使用--ignore-table=db.table
选项排除单个名称(无论是表格还是视图)。但是你必须单独列出每个视图。
另一个选择是mysqldump与缺少SHOW VIEW
权限的用户。这将从备份中排除视图,但会生成错误。如果您使用--force
选项,则可以跳过错误并继续备份。