declare
n_count number;--声明变量存储要查询的表是否存在 beginselectcount(1)into n_count from user_tables t where t.table_name = upper('表名');--从系统表中查询当表是否存在 if n_count =0then--如果不存在,使用快速执行语句创建新表 execute immediate
'create table 表名 --创建测试表
(ID number not null,Name = varchar2(20) not null)';endif;end;
判断列是否存在
declare
n_count number;--声明变量存储要查询的表中的列是否存在 begin--从系统表中查询表中的列是否存在 selectcount(1)into n_count from user_tab_columns t where t.table_name = upper('表名')and t.column_name = upper('列名');--如果不存在,使用快速执行语句添加列 if n_count =0thenexecute immediate
'alter table 表名 add 列名 number not null';endif;end;
判断主键是否存在
declare
n_count number;--声明变量存储要查询的表中的主键是否存在 begin--从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可) selectcount(1)into n_count from user_constraints t where t.table_name = upper('表名')and t.constraint_type ='P';--如果不存在,使用快速执行语句添加主键约束 if n_count =0thenexecute immediate
'alter table 表名 add constraint PK_表名_ID primary key(id)';endif;end;
判断是否存在外键
declare
n_count number;--声明变量存储要查询的表中的外键是否存在 beginselectcount(1)into n_count from user_constraints t where t.table_name = upper('表名')and t.constraint_type ='R'and t.constraint_name ='外键约束名称';--如果不存在,使用快速执行语句添加外键约束 if n_count =0thenexecute immediate
'alter table 表名 add constraint 外键约束名称 foreign key references 外键引用表(列)';endif;end;