V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
V2EX  ›  MySQL

请问 mysql 命令行如何跨数据库复制数据表?

  •  
  •   gdtv · 6 天前 · 620 次点击

    数据库 db1 和 db2 在同一台服务器,有 root 账号和密码。
    我想将数据库 db1 里的表 table1 复制到数据库 db2 里,数据库 db2 里原来没有表 table2。 请问用命令行怎样写呢?
    mysql 命令行好像必须用 use db 选择数据库,然后才能执行操作,但我这个需求是跨数据库的,该怎么办呢?

    第 1 条附言  ·  6 天前
    好像可以这样:
    RENAME TABLE `db1`.`table1` TO `db2`.`table2`;
    第 2 条附言  ·  6 天前
    哦,上面是移动,不是复制
    7 回复  |  直到 2018-01-14 19:41:29 +08:00
        1
    regicide   6 天前 via iPhone   ♥ 1
    一次性需求的话 navicat 数据传输 搞定
        2
    julyclyde   6 天前
    库是关系的边界
    你这是要越界建立关系
    从设计上就是错的
    别想怎么实现了
        3
    cxbig   6 天前   ♥ 1
    如果一个账户有权限操作 2 个数据库的话,可以这样做:
    INSERT INTO `db2`.`table1` AS `d2t1` (`aa`, `bb`, `cc`)
    (SELECT `aa`, `bb`, `cc` FROM `db1`.`table1` AS `d1t1` WHERE `d1t1`.`aa` ...)
    ON DUPLICATE ...

    主要意思就是,同一个进程下,可以在 table 前带 db 的名字来区分数据库
        4
    abusizhishen   6 天前 via Android
    navicat
        5
    abusizhishen   6 天前 via Android
    或者 wokerbench
        6
    xsonglive   6 天前 via Android
    三楼说的对
        7
    alvinbone88   6 天前
    CREATE TABLE newdb.mynewtable LIKE olddb.myoldtable;
    INSERT newdb.mynewtable SELECT * FROM olddb.myoldtable;

    ref: https://stackoverflow.com/a/26601428
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1803 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 54ms · UTC 15:07 · PVG 23:07 · LAX 07:07 · JFK 10:07
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1