2012-11-30 87 views
0

我有两个数据库。 网站使用第一个数据库。 二是用于测试站点调试。Mysql数据库。用外键删除所有表。复制所有表

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

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

所有表都是具有外键的InnoDB。

回答

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