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

时间: 2024-08-07 20:59:27

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

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

1.再做一些数据迁移时候,很多人会使用create table  as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来. 2.  Using the CREATE TABLE ... AS SELECT ... command: This command will copy acrooss to the new table all the data,but the cons

sqlserver不能直接create table as select

sqlserver不能直接create table as select 在sqlserver 下想复制一张表的,想到oracle下直接create table xxx as select * from ....即可.但是结果却是错误的,baidu一下发现.sqlserver的语法是 : select * into tablenew from tableold Insert into select 与create table as的性能测试及create table 2013-10-05 09:5

CREATE TABLE new_tbl_name SELECT * FROM old_tbl_name / INSERT INTO new_tbl_name SELECT * FROM old_tbl_name

DESCRIBE PRODUCTS_TBL; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | PROD_ID | varchar(10) | NO | PRI | NULL | | | PROD_DESC |

oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

create table  as select * from和insert into select from两种表复制语句区别 [sql] view plain copy create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插

MySQL中表复制:create table like 与 create table as select

CREATE TABLE A LIKE B 此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来. CREATE TABLE A AS SELECT x,x,x,xx FROM B LIMIT 0 此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来.这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构. 两种方式在复制表的时候均不会复制权限对表的设置.比如说原本对表B做了权限设置,复制后,表A不具备类似

MySQL中表复制:create table like 与 create table as select

1    CREATE TABLE A LIKE B此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来. 2.    CREATE TABLE A AS SELECT * FROM B 此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来.这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构. 两种方式在复制表的时候均不会复制权限对表的设置.比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权

create table 使用select查询语句创建表的方法分享

转自:http://www.maomao365.com/?p=6642 摘要:下文讲述使用select查询语句建立新的数据表的方法分享 ---1 mysql create table `新数据表名` select * from `旧数据表名`; -------------------------------- ---2 oracle create table 新数据表名 as select * from 旧数据表名 -------------------------------- --3 mss

Create table as select

create table xxx as select create table table1 as select * from table2 where 2=3; 根据table2的表结构,创建tables1 create table table1 as select * from table2 根据table2的表结构,创建tables1,同时将table2的数据插入table1 create table table1(column1_rename,column2_rename) as sel

设置select组件中的默认值

会员卡类型   <select id="name2" style="width:140px"> <option value="Ak" id="hj">黄金</option><!--通过设置id方便前台拿取 --> <option value="Bk" id="by">白银</option> var mcard = &