数据库中的move操作

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

在我们的系统中,有大量这样的需求:把表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就不可以.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航