慎用create table as select,一定要注意默认值的问题

本文介绍了一种常见的数据库表结构迁移方法——使用CREATE TABLE AS SELECT语句,并指出这种方法的一个重要限制:无法迁移原表中的默认值。通过具体示例说明了这一问题,并提醒读者在进行数据迁移时要注意这一细节。

再做一些数据迁移时候,很多人会使用create table  as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来,可以看下面的例子:

第一,新建一个表

-- Create table create table table01 (   id        number(16),   add_date  date default sysdate,   status    number(1),   entp_code varchar2(200) )

第二,使用create table table02 as select * From table01 where id=-1

第三、看看两个表的结构,会发现第二张表的defaule value没有了,如下2图,可以很明显看出来,表02的add_date的默认值得sysdate没有了

table01的表结构

 

table02的表结构

所以各位在做数据库迁移时候,使用create table as select时候,一定要注意默认值的问题

转自【http://wmcxy.iteye.com/blog/1137179

转载于:https://www.cnblogs.com/Neil223/p/5213895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值