当前位置: 首页 > 面试题库 >

Oracle-修改现有表以自动增加列

勾炜
2023-03-14
问题内容

我有一个带有以下列的表:

NOTEID      NUMBER NOT NULL,

出于所有目的和目的,此列是主键。该表有几千行,每行都有一个唯一的ID。在此之前,应用程序将从表中选择MAX()值,添加一个,然后将其用作下一个值。这是一个可怕的解决方案,并且不是事务或线程安全的(实际上,在它们甚至没有对该列的UNIQUE约束之前,我都可以看到相同的NOTEID在9个不同的情况下被复制了)。

我对Oracle不太熟悉,因此我想了解更改此表的最佳语法并使该列自动递增。如果可能的话,我想使序列中的下一个值为表中的MAX(NOTEID)+
1,或者只是使其为800或其他值。谢谢!


问题答案:

如果您的MAX(noteid)为799,请尝试:

CREATE SEQUENCE noteseq
    START WITH 800
    INCREMENT BY 1

然后,在插入新记录时,对于NOTEID列,您将html" target="_blank">执行以下操作:

noteseq.nextval


 类似资料:
  • 问题内容: 我想向具有数据的现有表中添加一个新的自动增量主列。我怎么做? 我先添加了一个列,然后尝试添加一个序列,此后,我迷失了如何插入该列并将其作为主键。 问题答案: 假设您的表被调用t1,您的主键被称为idFirst,创建序列: 然后创建一个触发器,该触发器在插入时增加:

  • 我想向包含数据的现有表中添加一个新的自动递增主列。我该怎么做? 我首先添加了一列,然后尝试添加一个序列,之后我就不知道如何插入该列并将其作为主键。

  • 主要内容:Oracle ALTER TABLE示例,以下是纠正/补充内容:在本教程中,我们将学习如何使用Oracle 语句来修改表结构。 要修改现有表的结构,请使用语句。 以下说明语法: 在上面的语句中, 首先,指定要修改的表名称。 其次,指出想在表名称后执行的操作。 语句可用来: 添加一个或多个列 修改列定义 删除一列或多列 重命名列 重命名表 下面来看看一些例子来了解每个操作的工作原理。 Oracle ALTER TABLE示例 我们将使用在上一个教程中创建的表进行

  • 问题内容: 有没有一种方法可以在Oracle中创建一个timestamp列来自动存储记录更改的时间戳? 问题答案: 我建模的表始终包括: , VARCHAR2 , DATE , VARCHAR2 , DATE …列。当您可以与INSERT / UPDATE同时设置值时,为什么要实施触发器?

  • 我正在尝试使用现有主键将自动递增id添加到现有表中 这是我的密码 表代码的初始迁移 将自动增量ID添加到现有表代码 我试图做的是向这个现有表添加一个自动递增的id,但它给了我这个错误 有人能帮帮我吗?我不想删除表的主键,我只想添加另一个自动递增的id,它不是主键,但可以是唯一键

  • 问题内容: 我正在尝试更改没有主键或auto_increment列的表。我知道如何添加主键列,但我想知道是否有可能自动将数据插入主键列(我已经在数据库中有500行,并希望为其提供ID,但我不想手动执行) 。有什么想法吗?非常感谢。 问题答案: 在我的测试中,添加列的语句可以正常工作: 在为测试目的而创建的临时表上,以上语句创建了该 列,并为该表中的每个现有行插入了自动递增值,从1开始。