慎用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