php - 在执行 SQL 文件时与 MySQL 一起使用 --ignore-table

标签 php mysql sql

我有一个很大的 SQL 文件,我需要将此文件导入到 ubuntu 和 MySql 下的数据库

我使用此命令导出数据库,并忽略转储中的一些表

  mysqldump -uroot -proot myDatabase --ignore-table=myDatabase.table1 > sql_backup.sql;

现在我需要将其导入到另一个数据库并忽略导入操作中的一些表

如何在此命令中使用 --ignore-table 选项

mysql -hlocalhost -root -proot newdb< sql_backup.sql

我可以这样做以及如何做?

谢谢

最佳答案

我每周都会遇到这样的问题。就我而言,当我导入数据库但需要转储它时,我需要删除 2 个表。经过快速搜索后,我尝试了 sed,这就是我正在做的事情,也许它对您有用:

#!/bin/bash
sed '/`log_sessions`/ d' ${1} > dumpLog
sed '/`log_sessions_requests`/ d' dumpLog > ${2}
rm dumpLog

我使用此脚本来清理转储(并覆盖),删除对 log_sessionslog_sessions_requests 的所有引用

如果您使用表更改这两个名称,它应该可以正常工作。

当然,另一个解决方案是进行多次转储...但我认为这是更好的方法。

已编辑:更改了脚本以避免覆盖主转储

使用方法:

  1. 将脚本保存到名为 cleanDB.sh 的新文件
  2. 像这样调用脚本 ./cleanDB.sh mainDump.sqlfilteredDump.sql

我想你明白了,如果需要一些解释,请告诉我

关于php - 在执行 SQL 文件时与 MySQL 一起使用 --ignore-table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19653245/

相关文章:

c# - 在以下示例中,使用 LINQ 查询相关表的最佳实践是什么?

mysql - 无法创建存储过程 : Syntax error

java - spring JdbcTemplate 是如何识别数据类型的?

javascript - 计算 jquery php 中每个 div 的类数

php - 如何引用其他表

php - Ajax执行php而不刷新-如何设置变量?

MySQL:优化对记录范围的搜索。

php - 在 php 中设置 base_url() 。任何php框架中的base_url()应该是什么?

mysql - 如何通过命令提示符对我的所有 mysql 表数据进行 des_加密?

python - Azure Databricks 错误 : AzureException: hadoop_azure_shaded. com.microsoft.azure.storage.StorageException:服务器无法对请求进行身份验证