复制表的SQL命令

时间:2020-03-06 14:42:24  来源:igfitidea点击:

将表从一个数据库复制到另一个数据库的SQL命令是什么?
我正在使用MySQL,并且我有两个数据库x和y。假设我在x中有一个名为a的表,并且需要将该表复制到y数据库。
抱歉,这个问题太新手了。

谢谢。

解决方案

如果只想复制内容,则可能正在寻找select into
http://www.w3schools.com/Sql/sql_select_into.asp。但是,这不会创建相同的副本,而只是将每一行从一个表复制到另一个表。

如果目标表不存在...

CREATE TABLE dest_table AS (SELECT * FROM source_table);

如果目标表确实存在

INSERT INTO dest_table (SELECT * FROM source_table);

注意事项:仅在Oracle中经过测试

由于方案涉及两个不同的数据库,因此正确的查询应为...

INSERT INTO Y..dest_table(SELECT * FROM source_table);

查询假定我们正在使用X数据库运行它。

如果两个数据库分开,那么最简单的方法就是创建表的转储并将其加载到第二个数据库中。请参阅数据库手册,以了解如何执行转储。

否则,我们可以使用以下语法(对于MySQL)

INSERT INTO database_b.table (SELECT * FROM database_a.table)

在命令行

mysqldump somedb sometable -u user -p | mysql otherdb -u user -p

然后输入两个密码。

即使它们位于不同的主机上(也可以像往常一样添加-h参数),该方法仍然有效,而插入选择不能做到这一点。

注意不要意外地输入错误的数据库,否则我们最终将在该数据库中删除sometable表! (转储将从" drop table sometable"开始)。

从其他人建议的select中插入blah很适合在mysql下复制数据。

如果要复制表结构,则可能要使用show create table Tablename;陈述。