当前位置: 首页 > 编程笔记 >

Oracle 创建主键自增表示例代码

郭弘盛
2023-03-14
本文向大家介绍Oracle 创建主键自增表示例代码,包括了Oracle 创建主键自增表示例代码的使用技巧和注意事项,需要的朋友参考一下

前言

本篇文章给大家主要介绍的是在oracle中如果创建自增长表的方法,这里要用到序列。下面话不多说,我们来看示例代码。

示例代码

create table tb_student
(
  id         NUMBER(10)      not null,
  createtime     DATE         not null,
  constraint PK_tb_student primary key (id)
);

comment on table "tb_student" is
'学生表';

comment on column "tb_student"."id" is
'主键id';

comment on column "tb_student"."createtime" is
'创建时间';


--创建序列
create sequence seq_tb_student
minvalue 1
nomaxvalue
start with 1
increment by 1
nocycle  --一直累加,不循环
nocache; 


--创建触发器,如果insert语句不指定ID自动插入增长值
CREATE OR REPLACE TRIGGER tr_tb_student 
BEFORE INSERT ON tb_student FOR EACH ROW WHEN (new.id is null)
begin
select seq_tb_student.nextval into:new.id from dual;
end;

注意:触发器是非必须的,可以从业务上严格要求指定插入值。

注意oracle限制对象名的字符长度不能超过30个字符,所以表名要控制在一定的长度否则后面创建序列可能会超过限制,建议表名控制在27个字符以下。

总结

以上就是Oracle创建主键自增表的全部内容,希望本文的内容对大家的学习或者使用Oracle带来一定的帮助,如果有疑问大家可以留言交流,小编会尽快给大家回复的。

 类似资料:
  • 问题内容: 我想在ala SQL Server列中实现标识或自动递增值: 如何才能做到这一点? 问题答案: 正如Orbman所说,实现此目标的标准方法是使用序列。大多数人也将其与插入触发器结合在一起。因此,当插入没有ID的行时,触发器将触发以从序列中为您填写ID。 这是在Oracle中使用触发器的少数情况之一。

  • 问题内容: 我使用的是与开源Parse Server集成在一起的PostgreSQL 9.5 X64。我的表具有以下结构。 由于使用了Parse Server,因此是主键。它由Parse Server自动生成。该不是主键。我想在创建新记录时自动增加1。如何在创建表中实现? 问题答案: 您可以尝试制作专栏文章。我不知道是否可以更改当前列以使其为串行,因此我们可能必须删除该列,然后将其添加回去,如下所

  • 主要内容:指定自增字段初始值,自增字段值不连续在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如下: 字段名 数据类型 AUTO_INCREMENT 默认情况下,AUTO_INCREMENT 的初始值是 1,每新增一条记录,字段值自动加 1。 一个表中只能

  • 如题,新手,我知道要创建sequence,但是还是报错,代码如下: 提示“Error,ORA-00907:缺失右括号”。不知道为什么?正常应该如何创建自增id的表呢?

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

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