加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle数据库创建一个主键ID自增的表

发布时间:2021-01-25 12:34:50 所属栏目:百科 来源:网络整理
导读:一.建表 CREATE TABLE 表 ( ID INTEGER not null, NAME NVARCHAR2(256), DEL_FLG int ,CONSTRAINT "PF_表" PRIMARY KEY ("ID") ) 二.创建序列 CREATE SEQUENCE 表_ID INCREMENT BY 1? ? ?--指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列

一.建表

CREATE TABLE 表
(
ID INTEGER not null,
NAME NVARCHAR2(256),
DEL_FLG int
,CONSTRAINT "PF_表" PRIMARY KEY ("ID")
)

二.创建序列

CREATE SEQUENCE 表_ID
INCREMENT BY 1? ? ?--指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1

START WITH 1? ? ? ? ? --指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。

NOMAXVALUE? ? ? ? --为升序指定最大值为1027,为降序指定最大值为-1。

ORDER
NOCYCLE
CACHE 10;? ? ? ? ? ? ?

三.创建触发器

CREATE OR REPLACE TRIGGER? 触发器名称
BEFORE INSERT ON 表
FOR EACH ROW
BEGIN
SELECT yqjyMaintain_ID.nextval INTO :NEW.ID FROM DUAL;? ? ? ? ? ? ? ? --触发条件(sql语句)
END 触发器名称;

?

触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发器执行;
after:表示在数据库动作之后触发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

触发器能实现如下功能:

功能:

1、 允许/限制对表的修改2、 自动生成派生列,比如自增字段3、 强制数据一致性4、 提供审计和日志记录5、 防止无效的事务处理6、 启用复杂的业务逻辑

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读