`

转: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 SQL语句来检查这些对象是否存在: 1. **判断Oracle表...

    Oracle的表结构转成Mysql的表结构

    ### Oracle的表结构转成MySQL的表结构 #### 功能概述 本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数...

    常用Hibernate主键生成策略

    - **缺点**:在执行新增操作时,需查询数据库判断生成的主键是否已经存在,增加了系统的复杂度和开销。 2. **Increment** - **定义**:表示新增数据操作时由Hibernate自动生成主键值。其生成的值为:先查询该主键...

    PL_SQL_Oracle基础教程

    - `[NOT] BETWEEN x AND y`:判断某列的值是否在两个给定值之间。 - `[NOT] IN (x, y, ...)`:判断某列的值是否在指定的列表中。 - `[NOT] LIKE`:模糊匹配,通常与通配符一起使用。 - `IS [NOT] NULL`:判断某...

    oracle_cj.doc

    ALTER TABLE允许对已存在的表进行修改,如添加、删除或修改列。CONSTRAINT用于定义表的约束条件,如唯一性、非空等。SEQUENCE则用于生成序列号,常用于主键生成。 3. 事务处理: 在Oracle中,事务(Transaction)是...

    Oracle 索引 详解

    * 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。 * 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。 * 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的...

    Oracle & SQL 入门精简介绍

    - `IN (val1, val2, ...)`: 判断结果是否在这个集合中存在;`IN` 等价于 `= ANY`。 - `LIKE` `'%'`: 表示0或多个字符,`'_'` 表示一个字符。 - `AND`: 两个条件同时满足。 - `OR`: 条件只要满足其中之一就可以。 - `...

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

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

    oracle10笔记

    ### Oracle 10g 笔记精要 #### 1. SQL 概述 - **定义**:SQL(Structured Query Language)是一种用于管理和处理数据库的标准计算机语言。 - **功能**: - 数据查询(Data Query) - 数据操作(Data Manipulation...

    createtable.rar_oracle

    `column1`, `column2`等是表中的列名,`datatype`指定了列的数据类型(如NUMBER, VARCHAR2, DATE等),而`constraints`则是对列的约束条件,例如非空约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY...

    Oracle数据库基础知识

    **3.9 怎样判断是否存在回滚段竞争** - 查看`V$ROLLSTAT`视图,分析回滚段的状态和使用情况。 **3.10 怎样手工跟踪函数/存储过程执行情况** - 使用`DBMS_SESSION.SET_SQL_TRACE`和`DBMS_SQL_MONITOR.ENABLE`等包...

    oracle 学习笔记

    3. EXISTS关键字用于判断子查询结果集是否存在,通常用于某些特定的逻辑判断中。 4. NOT EXISTS是EXISTS的否定形式,用于检查子查询结果集是否不存在。 5. IN和EXISTS在功能上相似,但在性能上可能有差异,适用于...

    实验授课计划-Oracle数据库教程(第2版)-赵明渊-清华大学出版社.docx

    - **表的结构**:表是数据库中用来组织数据的一种逻辑结构,通常由列(Column)和行(Row)组成。 - **SQL Developer的操作界面**:介绍SQL Developer的主界面及其各个功能模块的作用,如编辑器、运行SQL语句等。 - **...

    Oracle经典教程(推荐)

    在Oracle中,可以通过`CREATE TABLE`语句定义表结构,并同时设置主键、外键等约束条件以保证数据完整性。 - **数据操纵语言(DML)** 数据操纵语言包括`INSERT`、`UPDATE`、`DELETE`等语句,用于插入、修改或...

Global site tag (gtag.js) - Google Analytics