sharpest

如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。

1.准备

创建UserInfo表,结构如下:

CREATE TABLE UserInfo
(
  id NUMBER(10) NOT NULL,
  username VARCHAR2(15) NOT NULL,
  password VARCHAR2(15) NOT NULL,

  CONSTRAINTS PF_UserInfo PRIMARY KEY(id) --创建主键约束
);

 

创建一个用于自增的序列(requence)

CREATE SEQUENCE Tab_UserInfo_Sequence
START WITH 1
MINVALUE 1
MAXVALUE 999999999
INCREMENT BY 1
CACHE 20;

 

2.触发器

CREATE OR REPLACE TRIGGER Tig_UserInfo_Insert
BEFORE INSERT ON UserInfo         --插入动作触发器
FOR EACH ROW WHEN(new.id IS NULL) --id值为null时触发
BEGIN
  select Tab_UserInfo_Sequence.nextval into :new.id from dual;   --插入序列值到id值
END;

 

3.测试用例

INSERT INTO UserInfo(username, password) VALUES(\'aaa\', \'111\');
INSERT INTO UserInfo(username, password) VALUES(\'bbb\', \'222\');
INSERT INTO UserInfo(username, password) VALUES(\'ccc\', \'333\');

 

查看表数据,结果如下:

4.END

至此,使用触发器设置主键自增已完成。

分类:

技术点:

相关文章:

  • 2022-01-31
  • 2021-12-04
  • 2021-10-09
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2021-11-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-17
  • 2021-12-22
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
  • 2022-02-07
相关资源
相似解决方案