复制表的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;陈述。