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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了慎用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

以上是关于慎用create table as select,一定要注意默认值的问题的主要内容,如果未能解决你的问题,请参考以下文章

慎用create table as select,不会copy约束,主键什么东东都不会复制

oracle 关于 create temporary table as select……

何时将 CREATE TABLE AS SELECT 与 CREATE TABLE LIKE?

Create table as select

oracle中,用create table ... as select * from table_a...语句备份或者其他用途会不会产生归档日志,

CREATE TABLE 表名 AS SELECT 语句