![如何转储 MySQL 数据库的视图模式?](https://linux22.com/image/558883/%E5%A6%82%E4%BD%95%E8%BD%AC%E5%82%A8%20MySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E8%A7%86%E5%9B%BE%E6%A8%A1%E5%BC%8F%EF%BC%9F.png)
我有一个 MySQL 数据库,我想转储其视图架构。我该怎么做?我尝试使用 --no-data 进行 mysqldump,但这只会转储表架构。
答案1
我认为您可能正在向 mysqldump 传递其他选项,或者使用不理解视图的 mysqldump 版本(可能太旧了)。当我运行 mysqldump --no-data 时,它会转储出视图定义。请参见以下内容:
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `t` AS select 1 AS `1` */;
答案2
使用- 选择选择倾倒:
mysqldump -hserver -uUser -ppasswd -no-data --opt export > export.sql
答案3
Mysqldump 没有任何选项可以仅在视图上转储。以下命令将帮助您仅备份视图。
mysql -uroot -pPassword INFORMATION_SCHEMA --skip-column-names -e “从表中选择表名,其中表类型='VIEW'和表模式='sakila'”| xargs mysqldump -u root -pPassword sakila > only_views.sql
答案4
其他答案没有,但这对我有用......
mysqldump --skip-comments --skip-opt --complete-insert --add-drop-table --database dbname -p