oracle 数据库自增长

每天进步多一点 / 2023-09-02 / 原文

有的时候,我们在创建oracle 自增序列时,会报错。这个时候不用慌,表创建完了就不用管了。然后我们可以根据下面的教程中的第二步,第三步,来创建序列。 

-- 第一步创建表
create table t_user(
user_id number not null primary key,
user_name varchar2(30),
credits number,
user_password varchar2(32),
last_visit date,
last_ip varchar2(23)
);
 
-- 第二步:为这个表创建序列
create sequence T_USER_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
 
 
-- 第三步:创建一个触发器 
-- t_user_tr: 随意的触发器名字,不要重复就行
-- t_user:表名
-- user_id: 表的自增字段
create or replace trigger t_user_tr
before insert on t_user
for each row
begin
select t_user_seq.nextval into :new.user_id from dual;
end t_user_tr;
 
 
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming1',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming1',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming1',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming2',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
insert into t_user values(null,'xiaoming',123,'1114',sysdate,'192.168.37.132');
 
 
select * from t_user