Mysql数据库。使用外键删除所有表。复制所有表格

时间:2012-11-30 10:28:30

标签: mysql mysqldump

我有两个数据库。 站点使用第一个数据库。 第二个用于测试站点的调试。

每天几次我必须更新测试站点数据库。

我没有root权限来删除和创建调试数据库。 所以我必须放弃所有的表而忽略外键;从firts数据库备份和恢复表到第二个。

所有表都是带外键的InnoDB。

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
USERNAME=root
PASSWORD=xxx
DBFROM=xxx
DBTO=xxx
HOST=localhost

MYSQL_OPTS="-u $USERNAME -p$PASSWORD -h $HOST"

TABLES=$(mysql $MYSQL_OPTS -BNe "show tables" $DBTO | tr '\n' ',' | sed -e 's/,$//' | awk '{print "SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS " $1 ";SET FOREIGN_KEY_CHECKS = 1;"}')
mysql $MYSQL_OPTS -BNe "$TABLES" $DBTO
mysqldump $MYSQL_OPTS $DBFROM | mysql $MYSQL_OPTS $DBTO