oracle添加数据时主键自动增长

CREATE TABLE STUDENT( --创建学生表
  ID NUMBER(10) PRIMARY KEY,   --主键ID
  SNAME VARCHAR2(20),
);

此时给学生表添加数据时 必须指定id

INSERT INTO STUDENT VALUES(1,'Tom');

下面用触发器和序列结合使得添加数据时id自动增长 不要指定了 

--创建序列

CREATE SEQUENCE SEQ_STU
INCREMENT BY 1  ID每次自增几
START WITH 1 ID从几开始自增
MAXVALUE 99999 ID的最大值
MINVALUE 1; ID的最小值

--创建触发器  添加数据的时候id自增

CREATE OR REPLACE TRIGGER TIGGER_STU
BEFORE
  INSERT ON STUDENT
  FOR EACH ROW
  WHEN(NEW.ID IS NULL)
BEGIN
    SELECT SEQ_STU.NEXTVAL INTO:NEW.ID FROM DUAL;
END;

触发器创建好之后就可以这样添加数据了

INSERT INTO STUDENT VALUES(null,'Tom');

ID可以为空  添加到数据库时  oracle会自动调用该触发器  更具序列  往后自增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值