`
zhao103804
  • 浏览: 124580 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

序列修改初始值

 
阅读更多

                                              序列

       关于序列问题,这里吐槽一下,数据库的设计,主键ID用序列自增长时,就不要用主键ID还用来做业务,比如部门和员工之间的关系,ID来做关联,如果用这个字段关联,会导致以后程序带来很多麻烦,比如现在业务需求是备份还原数据,当将数据导入到数据库时,当再次插入时,序列值还处在原来的值,而数据中已经有了该值,这会导致插入数据时报缺少唯一性约束。建议在设计时,将ID只是作为自增长列,关于两表关联的字段重新设置一列。或者ID可用UUID来标识,方便以后还原时对业务没有影响。在此,我只能将序列做处理。

 

     在此做数据备份还原时,则需要将所有表序列的初始值改成数据中ID中最大的一个值。由于在Oracle Db中,修改序列没有这样的语法。没有这样的语法情况怎么办,有二种方法可以完成——

        1.先删除序列,然后重新创建。这个方法比较方便。

        2.通过Increment By来实现修改初始值。

            例如:若序列名称是SeqTest2010_S,初始值是13,而现在要设置初始值为1020,Increment By值为:1007(1020-13)

            2.1 执行:Alter Sequence SeqTest2010_S Increment By 1007;

            2.2 执行:Select SeqTest2010_S.NextVal From Dual;

            2.3 执行:Alter Sequence SeqTest2010_S Increment By 1;

            修改完成。

      还有一个问题是需要将所有表的序列的初始值改变,对于公司几十张表或则几百张表的数据来说,不可能用手动去改,目前想到的可以用存储过程来对表中的序列做改动,但

oracle序列和表名没直接对应关系的

dba_sequences可以查询到有哪些序列
一般命名规则是:表名_s,看看有没有 有的话直接拿去用,否则我也没好的想法去得到表和序列之间的关系
      存储过程还是想法,目前还在考虑。有解决方案会尽快传上来。

分享到:
评论

相关推荐

    批量修改Oracle序列值的存储过程

    这里,`seq_name`是序列名,`START WITH`指定初始值,`INCREMENT BY`设置每次自增的数值,`MINVALUE`和`MAXVALUE`设定序列值的上下限,`CYCLE`选项表示当序列值超出范围时重新开始。 批量修改序列值通常涉及到ALTER...

    SQL Server 中调整自增字段的当前初始值

    SQL Server 中调整自增字段的当前初始值 SQL Server 中调整自增字段的当前初始值是指在 SQL Server 中对自增字段的当前初始值进行调整,以解决自增字段的当前初始值与数据库维护的初始自增值不一致的问题。 在 SQL...

    轻松掌握oracle数据库开发中序列的使用

    举例来说,创建一个名为`EXAM_NO_SEQ`的序列,初始值为1484,最大值为9999999999,最小值为1,步长为1,且设置了缓存大小为20的序列: ```sql CREATE SEQUENCE EXAM_NO_SEQ START WITH 1484 MAXVALUE ...

    Oracle数据库中序列的使用

    假设我们需要创建一个名为`EXAM_NO_SEQ`的序列,其初始值为1484,最大值为9999999999,最小值为1,并且当达到最大值后会循环回到最小值。此外,为了提高性能,我们还设置了缓存大小为20,不指定顺序: ```sql ...

    ORACLE的序列

    - **START WITH**:设定序列的初始值,默认为1。 - **MAXVALUE / MINVALUE**:设定序列的最大或最小值。若未设定,则递增序列默认最大值为10的27次方,递减序列默认最小值为-10的26次方。 - **CYCLE / NOCYCLE**:...

    Oracle数据库操作序列的一些常用命令

    `START WITH 1495`则指定了序列的初始值为1495。可以根据具体需求调整这些参数。 #### 二、查看序列信息(Query Sequence Information) 在Oracle数据库中,可以通过查询`USER_SEQUENCES`视图来获取关于序列的详细...

    oracle自增序列

    - 起始值(`START WITH`)设置为1,即序列的初始值是1。 - 增量(`INCREMENT BY`)设置为1,表示序列的每个新值比前一个值多1。 - 缓存大小(`CACHE`)设置为20,意味着数据库服务器将预先分配20个序列值并将其缓存...

    混沌初始化的matlab代码-better-file-editor:WordPress插件-向管理面板中的主题和插件编辑器添加行号、语法突出显

    3. **参数选择**:混沌系统的特性取决于其参数值。例如,洛伦兹系统的参数通常取为`σ=10`, `ρ=28`, `β=8/3`,这会产生经典的混沌行为。 4. **可视化**:MATLAB的绘图功能强大,可以用来显示混沌吸引子的轨迹,如...

    lorenz_Lorenz序列_lorenz时间序列_yetzfu_时间序列_

    在这个场景中,时间序列可能是通过数值求解Lorenz系统得到的x、y、z三个变量中任意一个或全部的值。 在压缩包内的文件 "fun_lorenz - 副本.m", "fun_lorenz.m", 和 "fun_lorenz - 副本 (2).m" 很可能包含了实现...

    oracle 同义词和序列

    如果需要修改序列,可以使用 `ALTER SEQUENCE` 语句,但某些参数(如初始值)是不可更改的。删除序列则使用 `DROP SEQUENCE` 语句。 综上所述,索引优化查询速度,视图提供数据抽象和安全,同义词简化引用,序列...

    对象的序列化和反序列化

    然而,反序列化时需要注意安全问题,因为它可能会执行对象构造函数和字段初始化代码,因此如果数据来源不可信,可能会引入安全风险,例如通过恶意构造的序列化数据进行攻击。 序列化还涉及到版本控制问题。当类的...

    基于混沌序列的水印技术

    这里的参数`alpha`和`beta`决定了混沌序列的特性,代码中设定为`alpha=1.4`和`beta=0.3`,初始值`key=-0.400001`。通过这个映射生成混沌序列后,对序列进行排序,然后使用排序后的序列索引对秘密图像进行加密。 接...

    序列化和反序列化1

    如果类的某个字段不想被序列化,可以使用`transient`关键字来标记,这将使得该字段的值在反序列化后变为初始值。 2. **序列化ID(serialVersionUID)**:在类中声明一个`private static final long ...

    MySQL生成Oracle序列参考案例

    4. `valuelen`:长度字段,用于确定序列值的最大长度,当达到最大长度后,序列值会自动回归至初始状态。 接下来,文档介绍了创建的三个函数,这些函数分别用于获取序列的当前值、获取序列的下一个值以及设置序列的...

    实验五 索引视图和序列1

    序列可以设置初始值、增量和最大值等属性。实验中创建了一个名为S_BookUser的序列,初始值为1,每次递增2,没有最大值限制。序列可以方便地在插入新记录时提供自动增长的ID。通过ALTER SEQUENCE语句,可以修改序列的...

    基于FPGA的可编程M序列发生器的设计.pdf

    设计者可以根据需要配置移位寄存器的初始值,以及选择合适的反馈逻辑(异或门连接方式),来生成不同序列周期的M序列。所生成的M序列具有良好的随机性与周期性,适合用于需要伪随机序列的各种场合。 在实际应用中,...

    m.zip_VHDL m序列_VHDL产生m序列_m序列

    2. **初始化条件**:LFSR的初始状态影响生成序列的起始点,必须谨慎设定以得到所需的序列。 3. **时钟控制**:VHDL设计中,序列的生成速度依赖于时钟频率,需要确保设计能在目标硬件上正常工作。 4. **序列长度**:...

    周期为2^n的二元序列k错线性复杂度的快速算法

    1. **初始化**:设置初始序列a为原序列的一个周期,变量c初始化为0,cost数组表示改变当前序列中某个位置所需的最小改动次数。 2. **迭代过程**:将序列a分成两部分L和R,通过模2加法得到新的序列b,并计算将b变为0...

    祖冲之序列密码算法.zip

    这部分可能涉及消息认证码(MAC)或哈希函数的使用,结合祖冲之序列密码生成唯一的校验值,用于验证数据的完整性和真实性。祖冲之算法在这一层面上的应用可能展示了一种创新的方法,既能提供高强度的加密,又能有效...

    shiro反序列化脚本.zip

    在标签中提到的"反射"是Java编程中的一个重要概念,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态调用方法和修改字段值。在反序列化漏洞中,反射常被用来触发特定的代码执行路径,因为反序列化的对象...

Global site tag (gtag.js) - Google Analytics