求sql语句,一个表复制到另一个表
我有个数据库aaa里面有两个表111和222,这两个表中的列名都不重复,我现在想把222里面的表全复制到表111里面去,求sql语句是把表222里面的列全复制到表111里...
我有个数据库aaa 里面有两个表111和222 ,这两个表中的列名都不重复,我现在想把222里面的表全复制到表111里面去,求sql语句
是把表222里面的列全复制到表111里面去 展开
是把表222里面的列全复制到表111里面去 展开
展开全部
由于表111和222 两张表的结构不同,要将表222复制到表111里面,编写一个能成功运行的SQL语句须要考虑很多因素:
1)字段数要匹配。插入和被插入的字段数要相同,例如表111 只5个字段而表222却有6个 字段,全部复制就会失败;
2)对应字段的类型要相同或者兼容。假如表111 字段a的类型为数值,表222 字段f的类型为文本,当字段f下有不兼容的值如"A3“插入字段a时系统就会报错;
3)被插入的字段是否允许空值。例如表111 字段b不允许空值且未设定默认值,当碰到表222 字段f下有空值插入表111 字段a时,系统就会报错;
4)插入的值必须符合被插入字段的有效性规则。例如表111 字段b只允许插入1到1000之间的整数,而当表222 的对应字段含有不在该范围的记录时,插入就会失败;
5)当然还有其他很多因素,比如字段的大小是否足够容纳被插入的值否则可能遭受截断、触发器限制、运行权限等等这里不再一一列举。
如果你能提供那两张表的详细结构、有效性规则,我可以为你编写出正确的SQL代码
1)字段数要匹配。插入和被插入的字段数要相同,例如表111 只5个字段而表222却有6个 字段,全部复制就会失败;
2)对应字段的类型要相同或者兼容。假如表111 字段a的类型为数值,表222 字段f的类型为文本,当字段f下有不兼容的值如"A3“插入字段a时系统就会报错;
3)被插入的字段是否允许空值。例如表111 字段b不允许空值且未设定默认值,当碰到表222 字段f下有空值插入表111 字段a时,系统就会报错;
4)插入的值必须符合被插入字段的有效性规则。例如表111 字段b只允许插入1到1000之间的整数,而当表222 的对应字段含有不在该范围的记录时,插入就会失败;
5)当然还有其他很多因素,比如字段的大小是否足够容纳被插入的值否则可能遭受截断、触发器限制、运行权限等等这里不再一一列举。
如果你能提供那两张表的详细结构、有效性规则,我可以为你编写出正确的SQL代码
展开全部
你这个思路不对!
即使你在表111中按照222的结构增加新列,你的数据会变成这样子
表111的未来样子
列1 列2 列3 新列1 新列2
a a a
b b b
c c
d d
这种结果是你想要的吗?如果是,很简单,先alart变更表结构,第二步,insert插入数据
根据你的数据库类型,你需要自己查找相关语法
变更结构时需要注意,所有字段都要允许为null值,不然你就完蛋了
即使你在表111中按照222的结构增加新列,你的数据会变成这样子
表111的未来样子
列1 列2 列3 新列1 新列2
a a a
b b b
c c
d d
这种结果是你想要的吗?如果是,很简单,先alart变更表结构,第二步,insert插入数据
根据你的数据库类型,你需要自己查找相关语法
变更结构时需要注意,所有字段都要允许为null值,不然你就完蛋了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into 1111
select * from 2222
select * from 2222
更多追问追答
追问
提示错误 列名或所提供值的数目与表定义不匹配
追答
insert into tab111(colum1, colum2, colum3)
select col1, col2, col3 from tab2222
列命要匹配,你两个表不一样的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
INSERT INTO <111>
<( column_list )>
SELECT <column_list>
FROM <222>
WHERE <predicate_list> ;
<( column_list )>
SELECT <column_list>
FROM <222>
WHERE <predicate_list> ;
更多追问追答
追问
提示错误 “<“附近有语法错误
追答
INSERT INTO ---table 不需要建立
-- 相应的列全部拷贝的话用*号
SELECT
FROM
WHERE ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into 111(111.a,111.b,111.c) select 222.a,222.b,222.c from 222
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原表存在的话这样用:
insertintoaselect*fromb
原表不存在的话这样用:
select*intoafromb
这是sqlserver的用法,oracle还有却别的,下面是oracle的用法
原表存在的话这样用:
insertintoaselect*fromb
原表不存在的话这样用:
createtableaasselect*fromb
以上,希望对你有所帮助!
insertintoaselect*fromb
原表不存在的话这样用:
select*intoafromb
这是sqlserver的用法,oracle还有却别的,下面是oracle的用法
原表存在的话这样用:
insertintoaselect*fromb
原表不存在的话这样用:
createtableaasselect*fromb
以上,希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询