Oracle-复制表结构存在的问题
阅读原文时间:2023年09月27日阅读:2

在生产中,创建一个新表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的表结构
创建成功后,测试表没有主键约束,外键约束,默认值