在线咨询
QQ咨询
服务热线
服务热线:13125520620
TOP

数据库中的move操作-数据库

发布时间:2011-11-12 浏览:4489

本文的几个内容是一直就有点迷糊的,今天清理了一遍,记录备忘.

在我们的系统中,有大量这样的需求:把表goods中的数据,move到表spec_goods中.
(两个表的列是相同的).一般来说,我们知道,最标准的写法是这样的:
insert into spec_goods(c1,c2,c3)  select c1,c2,c3 from goods where c3='A';

但我们系统中,这样的表很多,每个表的列也很多,基本全部都有这样的需求,按这样的方法去写,什么时候是个尽头?

所以想起了本科的数据库教材,王姗编的那本绿皮书上说过select into的语法,所以试了
select into spec_goods from  goods where c3='A';
结果有两种:
1)sybase上,该语句会新建表spec_goods,如果该表已经存在,则报错
2)oracle上,该语句报语法错


那就考虑另外的办法吧,经过江南白衣的提示,有下面的语句可以实现同样的功能:
insert into spec_goods  select * from goods where c3='A';
这条语句有特殊要求:
要求表spec_goods和表goods在建表时列都顺序完全相同.

在sybase中,还有一种简化的办法:
insert into spec_goods(c1,c2,c3) from goods where c3='A';
这个语法在其它数据库中不一定能行,oracle就不可以.

TAG
软件定制,软件开发,瀚森HANSEN
0
该内容对我有帮助