如果MySQL中不存在将表从一个数据库复制到另一个数据库?

时间:2015-09-04 10:33:38

标签: mysql

如何将数据库A中的所有表复制到数据库B中不存在的数据库B?两个数据库都在同一台服务器上。

感谢您的想法:)!

1 个答案:

答案 0 :(得分:0)

您可以使用下面的脚本,它只复制那些表,在目标数据库中不存在。

#!/bin/bash

USER=root
PASS=root123
SOURCE_DB=db1
TARGET_DB=db2

TBL=`mysql -u$USER -p$PASS -e"SET group_concat_max_len=102400;SELECT GROUP_CONCAT(DISTINCT a.table_name SEPARATOR ' ') FROM information_schema.tables a LEFT JOIN information_schema.tables b ON a.table_name=b.table_name AND b.table_schema='$TARGET_DB' AND b.table_type='BASE TABLE' WHERE a.table_schema='$SOURCE_DB' AND b.table_name IS NULL AND a.table_type='BASE TABLE';"`

mysqldump --single-transaction -u$USER -p$PASS $SOURCE_DB $TBL | mysql -u$USER -p$PASS $TARGET_DB

将root更改为您的用户

root123,用户密码

db1到您的源数据库

db2到目标数据库