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

2018-01-14 15:57:26 +08:00
 gdtv

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

3434 次点击
所在节点    MySQL
7 条回复
regicide
2018-01-14 16:15:47 +08:00
一次性需求的话 navicat 数据传输 搞定
julyclyde
2018-01-14 16:40:49 +08:00
库是关系的边界
你这是要越界建立关系
从设计上就是错的
别想怎么实现了
cxbig
2018-01-14 16:49:50 +08:00
如果一个账户有权限操作 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 的名字来区分数据库
abusizhishen
2018-01-14 17:05:18 +08:00
navicat
abusizhishen
2018-01-14 17:05:32 +08:00
或者 wokerbench
xsonglive
2018-01-14 17:58:19 +08:00
三楼说的对
alvinbone88
2018-01-14 19:41:29 +08:00
CREATE TABLE newdb.mynewtable LIKE olddb.myoldtable;
INSERT newdb.mynewtable SELECT * FROM olddb.myoldtable;

ref: https://stackoverflow.com/a/26601428

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/422809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX