Oracle数据库表自增列

–创建示例表
create table Student(
stuId number(9) not null,
stuName varchar2(20) not null,
stuMsg varchar2(50) null
)

– 创建序列 Student_stuId_Seq
create sequence Student_stuId_Seq
increment by 1
start with 1
minvalue 1
maxvalue 999999999;

– 更改序列 Student_stuId_Seq
alter sequence Student_stuId_Seq
increment by 2
minvalue 1
maxvalue 999999999;

–获取序列自增ID
select Student_stuId_Seq.Nextval 自增序列ID from dual;

– 删除序列
drop sequence Student_stuId_Seq;

–调用序列,插入Student数据
insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,‘张三’);
insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,‘李四’);
–查询插入的数据
select * from Student

–创建自增序列
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
(‘成功’,‘123’,‘系统日志’, ‘XXXXXXX’, ‘用户成功注销’, ‘doLogout’, ‘admin’,‘系统注销’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值