是的,这将完全按照它所说的做,即如果表已经存在,它将删除该表。请记住,您正在创建要导入的转储(有两种情况);
如果在创建新数据库(或表)时,drop table语句不会产生任何影响,因为首先没有要删除的表。
但跳过已创建表的删除;改用--跳过add drop table。(也可以使用--no create info with--skip add drop table,因为您也不需要create table语句)即。
mysqldump--跳过添加-删除表--无创建信息-h mysqlhostserver-u mysqlusername-p databasename tablename | bzip2-c>;博客贝克。sql。bz2型
仅供参考:不能使用(tablename、tablename、tablename)导出多个表。要么导出所有表,要么在databasename之后不使用任何tablename,要么只使用一个tablename。
请注意,如果您的表很大,那么明智的做法是将其分部分导出。i、 e.使用以下命令创建一个包含80k(八万)条记录(大约等于10 Mb)的转储文件;仅供参考:我使用where to mysqldump拆分了导出。
mysqldump -h mysqlhostserver -u mysqlusername -p --add-drop-table --add-drop-trigger --skip-triggers --dump-date --single-transaction --where=\'1 limit 0,80000\' databasename tablename > /home/blog1.bak.sql
mysqldump mysqlhostserver -u mysqlusername -p --skip-add-drop-table --no-create-info --dump-date --single-transaction --where=\'1 limit 80000,999999\' databasename tablename > /home/blog2.bak.sql
上面的命令首先创建第一个80K记录文件blog1。贝克。sql文件(请注意,我跳过了此转储中的触发器。我后来发现了这一点,因为如果第一次转储在插入或更新时有任何关联的触发器,这会让我发疯。然后在导入第一个转储文件时,
它将创建表,并在新创建的表中插入记录
创建与此表关联的触发器,并强制执行它们,以便在第一次导入其他转储文件之后导入其他转储文件;它将强制执行触发器(目前无法禁用触发器;除非重写这些触发器并添加复杂的代码来禁用触发器以进行调试或导入)。触发器通常有与其他表连接的代码;在此导入之前可能无法导入,因此导致导入失败。