create table t tablespace assm
as
select 0 id,a.* from all_objects a
where 1=0;红色部分我不是很理解,那位能详细的讲解一下

解决方案 »

  1.   


    create table t tablespace assm  --创建表t在表空间assm上
    as
    select 0 id,a.* from all_objects a  --第一列名称为id,类型和0相同(number),且默认值为0
    where 1=0; --1=0永远不成立,因此只复制表 all_object 的结构,不复制数据。--最后建出一个表,比all_objects 多一列id,但是表中无数据(where 1=0)
    [TEST@orcl] SQL>desc t
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ---------------------
     ID                                                 NUMBER
     OWNER                                     NOT NULL VARCHAR2(30)
     OBJECT_NAME                               NOT NULL VARCHAR2(30)
     SUBOBJECT_NAME                                     VARCHAR2(30)
     OBJECT_ID                                 NOT NULL NUMBER
     DATA_OBJECT_ID                                     NUMBER
     OBJECT_TYPE                                        VARCHAR2(19)
     CREATED                                   NOT NULL DATE
     LAST_DDL_TIME                             NOT NULL DATE
     TIMESTAMP                                          VARCHAR2(19)
     STATUS                                             VARCHAR2(7)
     TEMPORARY                                          VARCHAR2(1)
     GENERATED                                          VARCHAR2(1)
     SECONDARY                                          VARCHAR2(1)