SQL数据库中如何把一个表中的数据复制到另一个表中?**

1整个表复制:**

insert into table1 
select  * 
from table2

2部分列复制:**

insert into table1(column1,column2,column3...) 
select column1,column2,colunm3... 
from table2

3一个数据库中的表中的数据复制到另一个数据库中的一个表中:

insert into 数据库A.dbo.table1(col1,col2,col3...) 
select col1,col2,col3... 
from 数据库B.dbo.table2

4创建新表跟原表一样的结构,并复制数据

select * into tableNew    from  table

5实践中的问题:

原本table_first是空表,cmdb.host_hostinfo_del的信息不能直接复制过来,
会报错:SQL 错误 [1136] [21S01]: Column count doesn’t match value count at row 1
在DBeaver中直接复制表,只能复制列,不能复制数据。
在此基础上,才选择了复制数据。代码如下:

insert into test_liu.table_first 
select  * 
from cmdb.host_hostinfo_del

当然可以创建新表跟原表一样的结构,并复制数据,

select * 
into tablenew    
from  table_first

出现问题:SQL 错误 [1327] [42000]: Undeclared variable: tablenew

在MySQL中使用以上会报错,如何解决?会报上边的错误,这是因为MySQL不支持这种语法,它的替代语法是这样的:

create table tablenew
(select  *
from table_first
)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐