`

转:Oracle判断表、列、主键是否存在的方法

阅读更多

转载地址:http://blog.csdn.net/wxdzxl/article/details/8063774

 

一。判断Oracle表是否存在的方法

  1. declare tableExistedCount number;   --声明变量存储要查询的表是否存在  
  2. begin   
  3.      select count(1) into tableExistedCount  from user_tables t where t.table_name = upper('Test'); --从系统表中查询当表是否存在  
  4.      if tableExistedCount  = 0 then --如果不存在,使用快速执行语句创建新表  
  5.          execute immediate  
  6.          'create table Test --创建测试表  
  7.          (ID number not null,Name = varchar2(20) not null)';  
  8.      end if;  
  9. end;  

 

二。判断Oracle表中的列是否存在的方法

  1. declare columnExistedCount number;   --声明变量存储要查询的表中的列是否存在  
  2. begin   
  3.         --从系统表中查询表中的列是否存在  
  4.         select count(1) into columnExistedCount from user_tab_columns t where t.table_name = upper('Test')  and t.column_name = upper('Age');       
  5.         --如果不存在,使用快速执行语句添加Age列  
  6.         if columnExistedCount = 0 then   
  7.            execute immediate  
  8.            'alter table Test add age number not null';  
  9.         end if;  
  10. end;  

 

三。判断Oracle表是否存在主键的方法

  1. declare primaryKeyExistedCount number;   --声明变量存储要查询的表中的列是否存在  
  2. begin   
  3.         --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)  
  4.         select count(1) into primaryKeyExistedCount from user_constraints t where t.table_name = upper('Test'and t.constraint_type = 'P';       
  5.         --如果不存在,使用快速执行语句添加主键约束  
  6.         if primaryKeyExistedCount  = 0 then   
  7.         execute immediate  
  8.         'alter table Test add constraint PK_Test_ID primary key(id)';  
  9.         end if;  
  10. end;  

 

四。判断Oracle表是否存在外键的方法

  1. declare foreignKeyExistedCount number;   --声明变量存储要查询的表中的列是否存在  
  2. begin   
  3.         --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)  
  4.         select count(1) into foreignKeyExistedCount from user_constraints t where t.table_name = upper('Test'and t.constraint_type = 'R' and t.constraint_name = '外键约束名称';       
  5.         --如果不存在,使用快速执行语句添加主键约束  
  6.         if foreignKeyExistedCount = 0 then   
  7.            execute immediate  
  8.            'alter table Test add constraint 外键约束名称 foreign key references 外键引用表(列)';  
  9.         end if;  
  10. end
分享到:
评论

相关推荐

    Oracle判断表、列、主键是否存在的方法

    主要介绍了Oracle判断表、列、主键是否存在的方法,下面是小编之家小编给大家带来的一些判断方法和大家分享下

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等  语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    oracle数据库经典题目

    13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。 ALTER TABLE Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g数据库在创建后都...

    mysql数据库的基本操作语法

    注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录, 那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。 创建外键约束: 主表 create table ...

    SQL培训第一期

    属性不依赖于其它非主属性,确保数据表中的每一列数据都和主键直接相关,而不能间接相关,即要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 1.5.3.2 举例 党员表 党员Id 党员姓名 组织Code 符合3NF ...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

    经典SQL语句大全

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    sql经典语句一部分

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    C#开发经验技巧宝典

    0801 检测计算机是否存在网络连接 486 0802 如何判断计算机的联机状态 486 0803 获取计算机屏幕分辨率 486 0804 获取计算机当前登录的用户名称 486 18.2 系统控制 486 0805 远程关闭或重新启动计算机 ...

    jpivot学习总结.doc

    foreignKey 外键,对应事实表中的一个列,它通过 <Hierarchy> 元素中的主键属性连接起来。 3.4. Hierarchy 你一定要指定其中的各种关系 , 如果没有指定 , 就默认 Hierarchy 里面装的是来自立方体中的真实表 . ...

    asp.net知识库

    通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET ...

    数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    精通sql结构化查询语句

    4.3.3 修改数据表中的列 4.3.4 删除数据表中的列 4.4 数据表的删除 4.4.1 删除数据表的语句结构 4.4.2 使用SQL语句删除数据表 4.5 数据表的重命名 4.5.1 重命名数据表的语句 4.5.2 使用SQL语句重命名数据表 4.6 小结...

    精髓Oralcle讲课笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; --那么这个用户名就能使用了。 --(默认全局数据库名orcl) 1、...

    C#编程经验技巧宝典

    83 <br>0125 按要求生成指定位数编号 83 <br>0126 确定两字符串是否相等 84 <br>0127 判断两字符串中指定子串是否相等 84 <br>0128 判断字符串是否为日期格式 85 <br>0129 清除字符串中指定...

Global site tag (gtag.js) - Google Analytics