转载地址:http://blog.csdn.net/wxdzxl/article/details/8063774
一。判断Oracle表是否存在的方法
- declare tableExistedCount number; --声明变量存储要查询的表是否存在
- begin
- select count(1) into tableExistedCount from user_tables t where t.table_name = upper('Test'); --从系统表中查询当表是否存在
- if tableExistedCount = 0 then --如果不存在,使用快速执行语句创建新表
- execute immediate
- 'create table Test --创建测试表
- (ID number not null,Name = varchar2(20) not null)';
- end if;
- end;
二。判断Oracle表中的列是否存在的方法
- declare columnExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表中的列是否存在
- select count(1) into columnExistedCount from user_tab_columns t where t.table_name = upper('Test') and t.column_name = upper('Age');
- --如果不存在,使用快速执行语句添加Age列
- if columnExistedCount = 0 then
- execute immediate
- 'alter table Test add age number not null';
- end if;
- end;
三。判断Oracle表是否存在主键的方法
- declare primaryKeyExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)
- select count(1) into primaryKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'P';
- --如果不存在,使用快速执行语句添加主键约束
- if primaryKeyExistedCount = 0 then
- execute immediate
- 'alter table Test add constraint PK_Test_ID primary key(id)';
- end if;
- end;
四。判断Oracle表是否存在外键的方法
- declare foreignKeyExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)
- select count(1) into foreignKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'R' and t.constraint_name = '外键约束名称';
- --如果不存在,使用快速执行语句添加主键约束
- if foreignKeyExistedCount = 0 then
- execute immediate
- 'alter table Test add constraint 外键约束名称 foreign key references 外键引用表(列)';
- end if;
- end;
相关推荐
在Oracle数据库管理中,了解如何判断表、列以及主键的存在性是至关重要的。这有助于确保数据操作的正确性和防止由于误操作导致的错误。以下是一些常用的Oracle SQL语句来检查这些对象是否存在: 1. **判断Oracle表...
### Oracle的表结构转成MySQL的表结构 #### 功能概述 本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数...
- **缺点**:在执行新增操作时,需查询数据库判断生成的主键是否已经存在,增加了系统的复杂度和开销。 2. **Increment** - **定义**:表示新增数据操作时由Hibernate自动生成主键值。其生成的值为:先查询该主键...
- `[NOT] BETWEEN x AND y`:判断某列的值是否在两个给定值之间。 - `[NOT] IN (x, y, ...)`:判断某列的值是否在指定的列表中。 - `[NOT] LIKE`:模糊匹配,通常与通配符一起使用。 - `IS [NOT] NULL`:判断某...
ALTER TABLE允许对已存在的表进行修改,如添加、删除或修改列。CONSTRAINT用于定义表的约束条件,如唯一性、非空等。SEQUENCE则用于生成序列号,常用于主键生成。 3. 事务处理: 在Oracle中,事务(Transaction)是...
* 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。 * 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。 * 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的...
- `IN (val1, val2, ...)`: 判断结果是否在这个集合中存在;`IN` 等价于 `= ANY`。 - `LIKE` `'%'`: 表示0或多个字符,`'_'` 表示一个字符。 - `AND`: 两个条件同时满足。 - `OR`: 条件只要满足其中之一就可以。 - `...
在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等 语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...
### Oracle 10g 笔记精要 #### 1. SQL 概述 - **定义**:SQL(Structured Query Language)是一种用于管理和处理数据库的标准计算机语言。 - **功能**: - 数据查询(Data Query) - 数据操作(Data Manipulation...
`column1`, `column2`等是表中的列名,`datatype`指定了列的数据类型(如NUMBER, VARCHAR2, DATE等),而`constraints`则是对列的约束条件,例如非空约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY...
**3.9 怎样判断是否存在回滚段竞争** - 查看`V$ROLLSTAT`视图,分析回滚段的状态和使用情况。 **3.10 怎样手工跟踪函数/存储过程执行情况** - 使用`DBMS_SESSION.SET_SQL_TRACE`和`DBMS_SQL_MONITOR.ENABLE`等包...
3. EXISTS关键字用于判断子查询结果集是否存在,通常用于某些特定的逻辑判断中。 4. NOT EXISTS是EXISTS的否定形式,用于检查子查询结果集是否不存在。 5. IN和EXISTS在功能上相似,但在性能上可能有差异,适用于...
- **表的结构**:表是数据库中用来组织数据的一种逻辑结构,通常由列(Column)和行(Row)组成。 - **SQL Developer的操作界面**:介绍SQL Developer的主界面及其各个功能模块的作用,如编辑器、运行SQL语句等。 - **...
在Oracle中,可以通过`CREATE TABLE`语句定义表结构,并同时设置主键、外键等约束条件以保证数据完整性。 - **数据操纵语言(DML)** 数据操纵语言包括`INSERT`、`UPDATE`、`DELETE`等语句,用于插入、修改或...