Oracle设置自增序列

在Oracle中创建了一个名为S_LOG_INFO的表,包含用户账户、用户名、操作时间等字段,并为主键设置了自增序列S_LOG_INFO_PRIMARYKEY_SEQUENCE。接着创建了一个触发器,使得在插入数据时,如果主键为空,则会自动填充序列的下一个值。最后插入了一条测试数据,用于展示系统的日志记录功能。

Oracle设置自增序列

-- 创建一个表
create table S_LOG_INFO
(
PRIMARYKEY NUMBER not null,
USERACCOUNT VARCHAR2(50),
USERNAME VARCHAR2(100),
OPERATIONTIME DATE,
LOGTYPE VARCHAR2(100),
SYSTEMTYPE VARCHAR2(500),
MODUAL VARCHAR2(100),
FUN VARCHAR2(50),
CONTENT VARCHAR2(500),
LOGSTATUS VARCHAR2(50),
constraint PK_S_LOG_INFO primary key (PRIMARYKEY)
);

/*创建自增序列*/
CREATE SEQUENCE S_LOG_INFO_PRIMARYKEY_SEQUENCE
MINVALUE 1 --最小值
NOMAXVALUE --不设置最大值
START WITH 1 --从1开始计数
INCREMENT BY 1 --每次加1
NOCYCLE --一直累加,不循环
NOCACHE; --不建缓冲区

-- 创建触发器实现数据插入时触发主键自动增长
CREATE OR REPLACE TRIGGER S_LOG_INFO_TRIGGER BEFORE INSERT ON S_LOG_INFO FOR EACH ROW WHEN(NEW.PRIMARYKEY IS NULL)
BEGIN
SELECT S_LOG_INFO_PRIMARYKEY_SEQUENCE.NEXTVAL INTO:NEW.PRIMARYKEY FROM dual;
END;
-- 添加测试数据
INSERT
INTO
S_LOG_INFO
(LOGSTATUS, USERACCOUNT, LOGTYPE, SYSTEMTYPE, CONTENT, FUN, USERNAME, MODUAL)
VALUES
('成功','1234','系统日志', 'XXXXXXX', '用户成功注销', 'doLogout', 'admin','系统注销')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值