2008-09-25 38 views
9

将表从一个数据库复制到另一个数据库的SQL命令是什么? 我正在使用MySQL,我有两个数据库x和y。假设我有一个名为a的表,我需要将该表复制到y数据库。 对不起,如果问题太新手。用于复制表的SQL命令

谢谢。

+1

通常有比SQL更好的方法。大多数DBMS'将提供复制表的功能,或在最坏的情况下卸载和重新加载数据。 – paxdiablo 2008-09-25 07:05:31

回答

8

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

否则,你可以使用下面的语法(MySQL的)

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

如果目标表不存在....

CREATE TABLE dest_table AS (SELECT * FROM source_table); 

如果目标表确实存在

INSERT INTO dest_table (SELECT * FROM source_table); 

警告:只有在甲骨文

+1

Oracle?哈!它甚至无法区分一个空的varchar和一个null。 DB2和我吐在你的玩具数据库上:-)。 – paxdiablo 2008-09-25 07:06:49

3

测试由于您的方案涉及两个不同的数据库,正确的查询应该是...

INSERT INTO Y..dest_table(SE LECT * FROM source_table);

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

1

在命令行

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

然后输入两个密码。

即使它们位于不同的主机上,也可以正常工作(只需像往常一样添加-h参数),这对于插入选择无法实现。

注意不要意外地输入错误的数据库,否则你最终会丢掉那个db中的sometable表! (转储将以'drop table sometable'开始)。

1

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

如果您想复制表结构,您可能需要使用show create table Tablename;声明。