首页   注册   登录
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 · 96 天前 · 935 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  96 天前
    好像可以这样:
    RENAME TABLE `db1`.`table1` TO `db2`.`table2`;
    第 2 条附言  ·  96 天前
    哦,上面是移动,不是复制
    7 回复  |  直到 2018-01-14 19:41:29 +08:00
        1
    regicide   96 天前 via iPhone   ♥ 1
    一次性需求的话 navicat 数据传输 搞定
        2
    julyclyde   96 天前
    库是关系的边界
    你这是要越界建立关系
    从设计上就是错的
    别想怎么实现了
        3
    cxbig   96 天前   ♥ 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   96 天前 via Android
    navicat
        5
    abusizhishen   96 天前 via Android
    或者 wokerbench
        6
    xsonglive   96 天前 via Android
    三楼说的对
        7
    alvinbone88   96 天前
    CREATE TABLE newdb.mynewtable LIKE olddb.myoldtable;
    INSERT newdb.mynewtable SELECT * FROM olddb.myoldtable;

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