数据库中的move操作

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值