复制单个表格

22

是否可以复制单个表格?


4
如下所述是可能的,但非常脆弱。在引用任何未被复制的表时对复制表进行任何数据修改查询可能会破坏复制。 - Dan Head
4个回答

16

是的,这是可能的。请查看MySQL手册的复制选项。但是这仍然需要创建整个数据库的完整二进制日志。


1

如果要将特定的表再次同步到一个或多个从服务器上,最好使用pt-table-checksum和pt-table-sync,这样可以自动识别不同步的表,并且只同步那些表。


5
参考文档的引用会使您的回答更有用! - Raad

0
CREATE TABLE new_table_name
SELECT *
FROM original_table_name;

如果您想从原始表中选择所有列,请使用“*”,否则请给出特定的列名。

这将在同一数据库中复制表。


-1

我知道这是一个老问题,但这是为了任何寻找答案的人:

CREATE TABLE table2 LIKE table1;

这将创建一个具有相同格式和列但没有数据的表。要传输数据,请使用:

INSERT INTO table2 SELECT * FROM table1;

编辑:

需要注意的是,这只是一种信息传输方式。也就是说,如果您在table1上有索引,它们不会被转移到table2上。您需要手动为table2创建索引。


11
注意:这与复制无关,只是“复制”。 - Hut8
3
@LaceCard 有什么区别? - Scarecrow
6
有许多种复制方式。通常情况下,您有多个服务器,在其中一个服务器上写入数据时,该数据将自动复制到其他服务器上。这种方法用于提高可扩展性和可用性。而您的查询语句,虽然正确,但只会将一个表中的所有行一次性复制到具有相同列的另一个表中。详细信息请参阅 http://en.wikipedia.org/wiki/Replication_(computing)。 - Hut8
6
@LaceCard 我明白你的意思。我最初将问题解释为仅复制表格,因为在英语中,“replicate”与“copy”同义。我没有意识到这是一个行业术语。谢谢。 - Scarecrow
使用“like”创建的索引与原始索引相同。 - ysth
这不是复制,请注意。如果您正在考虑Mysql复制,请查看https://dev.mysql.com/doc/refman/5.7/en/replication.html。 - Asuquo12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接