【问题标题】:Copying tables from one db to another if they do not exist in MySQL?如果 MySQL 中不存在表从一个数据库复制到另一个数据库?
【发布时间】:2015-11-30 11:40:10
【问题描述】:

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

感谢您的想法:)!

【问题讨论】:

  • 您想在单个命令中执行此操作,或者只想执行此活动....
  • 一个命令就完美了。
  • 最大表匹配或不匹配...
  • 你为什么不能使用this method。只需使用CREATE TABLE IF NOT EXISTS 即可避免重复
  • 可以使用mysql dump 完成。[参考链接][1] [1]:stackoverflow.com/questions/13484667/…

标签: mysql


【解决方案1】:

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

#!/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 到您的目标数据库

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多