当数据库位于不同用户下时,将数据从一个数据库中的表复制到另一个数据库中的表的最佳方法是什么?
我知道我可以用
INSERT INTO database2.table2 SELECT * from database1.table1
Run Code Online (Sandbox Code Playgroud)
但这里的问题是,无论是database1和database2是在不同的MySQL用户.所以user1只能访问,database1只能user2访问database2.任何的想法?
小智 100
如果您具有shell访问权限,则可以使用它mysqldump来转储内容database1.table1并将其传递mysql给database2.这里的问题table1仍然存在table1.
mysqldump --user=user1 --password=password1 database1 table1 \
| mysql --user=user2 --password=password2 database2
Run Code Online (Sandbox Code Playgroud)
也许你需要重命名table1为table2另一个查询.另一方面,您可以使用sed在to管道之间将table1更改为table2.
mysqldump --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
Run Code Online (Sandbox Code Playgroud)
如果table2已经存在,您可以将参数添加到第一个不创建table-created的mysqldump.
mysqldump --no-create-info --no-create-db --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
Run Code Online (Sandbox Code Playgroud)
小智 90
CREATE TABLE db1.table1 SELECT * FROM db2.table1
其中db1是目标,db2是源
Mek*_*ria 51
如果您使用的是PHPMyAdmin,那可能非常简单.假设您有以下数据库:
DB1 & DB2
Run Code Online (Sandbox Code Playgroud)
DB1有一个表用户,您希望将其复制到DB2
在PHPMyAdmin下,打开DB1,然后转到users表.
在此页面上,单击右上角的"操作"选项卡.在"操作"下,查找" 将表复制到(database.table)"部分:
你完成了!
mmd*_*bas 23

这将很容易解决迁移问题.您可以在MySql和SqlServer之间迁移所选数据库的选定表.你应该试一试.
小智 19
我使用Navicat for MySQL ......
它使所有数据库操作变得容易!
您只需在Navicat中选择两个数据库,然后使用.
INSERT INTO Database2.Table1 SELECT * from Database1.Table1
Run Code Online (Sandbox Code Playgroud)
使用MySql Workbench的导出和导入功能.步骤:
1.选择所需的值
E.g. select * from table1;
Run Code Online (Sandbox Code Playgroud)
使用与第一列类似的列创建新表
E.g. create table table2 like table1;
Run Code Online (Sandbox Code Playgroud)从新表中选择全部
E.g. select * from table2;
Run Code Online (Sandbox Code Playgroud)单击"导入",然后选择在步骤2中导出的CSV文件

我知道这是一个古老的问题,只需回答,以便任何落在这里的人都能获得更好的方法.
从5.6.10开始,你可以做到
CREATE TABLE new_tbl LIKE orig_tbl;
Run Code Online (Sandbox Code Playgroud)
请参阅此处的文档:https://dev.mysql.com/doc/refman/5.7/en/create-table-like.html
小智 8
这对我很有用
CREATE TABLE dbto.table_name like dbfrom.table_name;
insert into dbto.table_name select * from dbfrom.table_name;
Run Code Online (Sandbox Code Playgroud)
如果您的表位于同一个mysql服务器上,则可以运行以下命令
CREATE TABLE destination_db.my_table SELECT * FROM source_db.my_table;
ALTER TABLE destination_db.my_table ADD PRIMARY KEY (id);
ALTER TABLE destination_db.my_table MODIFY COLUMN id INT AUTO_INCREMENT;
Run Code Online (Sandbox Code Playgroud)
小智 7
这是另一种简单的方法:
INSERT INTO DB2.TB1 SELECT * from DB1.TB1;
这是您需要经常做的事情,还是只是偶尔做的事情?
您可以进行导出(例如使用 phpMyAdmin 或类似的),将您的表及其内容编写到文本文件中,然后您可以将其重新导入到其他数据库中。