oracle每天自增长,oracle的自增长

本文介绍了如何在Oracle数据库中创建表并设置唯一主键,以及通过触发器来实现自动分配序列号。提供了两种触发器版本,一种是在不指定ID时使用序列的NEXTVAL,另一种则无视插入时指定的ID。此外,还展示了插入测试数据的示例。
摘要由CSDN通过智能技术生成

5268f80b9b1e01f982625ef6fac83ca1.png

10) NOT NULL,

DESCRIPTION VARCHAR2 (50) NOT NULL

);

#创建一个表

CREATE TABLE T_TEST_DEPARTMENTS2 (

ID NUMBER (10) NOT NULL,

DESCRIPTION VARCHAR2 (50) NOT NULL

);

#设置唯一的字段

ALTER TABLE T_TEST_DEPARTMENTS ADD (CONSTRAINT) dept_pk PRIMARY KEY (ID);

ALTER TABLE T_TEST_DEPARTMENTS2 ADD (CONSTRAINT dept_pk PRIMARY KEY (ID));

#创建序列

CREATE SEQUENCE dept_seq;

CREATE SEQUENCE dept_seq2;

#触发器版本1:非空时,才使用序列的NEXTVAL值

CREATE OR REPLACE TRIGGER dept_before_insert

BEFORE INSERT ON T_TEST_DEPARTMENTS

FOR EACH ROW

WHEN (NEW.ID IS NULL)

BEGIN

SELECT dept_seq.NEXTVAL INTO :NEW.ID FROM dual ;

END ;

触发器版本2: 无视插入数据时,指定的ID

CREATE OR REPLACE TRIGGER dept_before_insert2

BEFORE INSERT ON T_TEST_DEPARTMENTS2

FOR EACH ROW

BEGIN

SELECT dept_seq2.NEXTVAL INTO :new.id FROM dual;

END;

#测试数据

INSERT INTO T_TEST_DEPARTMENTS (ID, DESCRIPTION) VALUES (19, ‘指定ID‘);

INSERT INTO T_TEST_DEPARTMENTS (DESCRIPTION) VALUES (‘不指定ID‘);

INSERT INTO T_TEST_DEPARTMENTS2 (ID, DESCRIPTION) VALUES (19, ‘指定ID‘);

INSERT INTO T_TEST_DEPARTMENTS2 (DESCRIPTION) VALUES (‘不指定ID‘);

参考转载自:http://www.cnblogs.com/xqzt/p/4452292.html

oracle的自增长

标签:har   指定   logs   primary   nts   esc   table   com   each

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/renboqie/p/6308942.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值