文章标题 Oracle数据库中dual表使用
来源:互联网 发布:unity3d模型制作 编辑:程序博客网 时间:2024/06/09 22:44
一. 业务场景
业务流程需要进行写入和更新的比较,所以有原表和历史表。
要求表中的ID唯一性,以及两张表的ID关联,另外后续可能数据库会进行迁移
二.方案选择
方案一:id设置为int型自增长。
这种做法编程简单,无需考虑id唯一性,由数据库帮忙维护。但是在此业务场景下存在缺点
1. 这里存在两张表关联。id自增长无法确保数据唯一性,也就无法保证原表与历史表进行数据映射。比如说,现在需要向原表A和历史表A_HISTORY表中插入相同的一条数据。插入A表后,发现无法取到A表的ID(A表的ID是主键,根据其他条件无法确保数据的唯一性)也就无法保证A_HISTORY表与A表能到插入相同的一条数据
2. 因为后期需要进行数据库的迁移,而ID自增长的。在数据迁移过程中可能会发生错误
方案二:利用虚拟表dual表
dual表是系统表,有SYS用户创建,默认在system表空间下,与用户表空间分开的。通过在dual表中创建序列既可以进行表ID的唯一性控制。
三.实现
1. 可视化操作
在oracle工具sql developer中。在system表空间schema目录。建立序列Update_sequence,设置递进步长,最小值、最大值等。
2.sql 语句
create SEQUENCE Update_sequence INCREMENT BY 1 MAXVALUE 5000 CYCLE;
两种方法都可以创建序列,向表中插入数据时就可以使用
SELECT UPDATE_SEQUENCE.NEXTVAL FROM DUAL
作为原表和历史表的ID。这样既保证了id的唯一性,也确保了原表与历史表的数据能够映射起来
0 0
- 文章标题 Oracle数据库中dual表使用
- 详解Oracle数据库中DUAL表的使用
- 详解Oracle数据库中DUAL表的使用
- 详解Oracle数据库中DUAL表的使用
- oracle数据库dual使用
- ORACLE数据库中dual虚拟表简介
- Oracle中dual表的使用
- Oracle中dual表
- Oracle中dual表
- oracle中dual表
- Oracle中Dual的使用
- Oracle数据库只Dual表
- oracle 数据库中dual虚拟表的介绍
- Oracle中dual表作用
- Oracle中dual虚拟表
- oracle中DUAL表详解
- oracle中DUAL表详解
- Oracle Dual表的使用
- Windows Phone 8.1 无法使用GB2312编码的解决方案
- 【LeetCode】Merge Intervals 解题报告
- ZOJ 3708 Density of Power Network(水题)
- MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤
- Spring注解@Component、@Repository、@Service、@Controller区别
- 文章标题 Oracle数据库中dual表使用
- Oracle substr()与substrb()
- 27. PHP 表达式
- Android commit already called
- C++ 文件操作
- socket咋谈
- 大小写转换-------蓝桥杯
- OC学习之道:C语言的冒泡排序与OC的冒泡排序之比较
- 堆排序