Oracle-复制表结构存在的问题

在生产中,创建一个新表tbl_A,要求与已有表结构tbl_B一致

create table tbl_A
AS
select * from tbl_B where 1=2;
--拷贝表结构tbl_B给tbl_A----

创建以后,导入数据发现tbl_A上基于主键(以为是tbl_B的主键)的查询全部都是全表扫描,故回看tbl_A的建表脚本,发现tbl_A并没有主键。

注意:上述拷贝表结构的脚本,并不拷贝约束关系,主键约束,外键约束,默认值约束。

测试如下:

--创建测试表test_A
create table test_A (grad number PRIMARY key);

--创建测试表test_B
create table test_B
(id varchar(20) not null ,
in_date  date default sysdate,
sal number not null,
grade number ,
PRIMARY key(id),
FOREIGN KEY (grade) REFERENCES test_A (grad)
);
test_B上存在主键约束,外键约束,默认值约束
--测试表test_C拷贝test_B的表结构
创建成功后,测试表没有主键约束,外键约束,默认值

 

posted @ 2020-06-30 18:23  HANDHEAD  阅读(505)  评论(0编辑  收藏  举报