慎用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?
oracle中,用create table ... as select * from table_a...语句备份或者其他用途会不会产生归档日志,