唠叨几句:几年前的知识忘却了,整理一下笔记,提供一下方便
1、创建数据库表 设置主键
create table users(
userid number(10) primary key, /*主键,自动增加*/
username varchar2(20)
);
附 删除表:drop table users;
2、创建序列自增
CREATE SEQUENCE user_Sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 100;
附 删除序列: DROP SEQUENCE user_Sequence
创建好序列之后,就手动可以添加数据了,可以多执行几次
insert into users(userid ,username ) values(user_Sequence.nextval,'范伟');
查询表数据看看效果
select userid ,username from users
3、那么问题来了,在oracle客户端这样操作是可以的。关键是怎么融入到实际开发中呢? 创建触发器试试!!
create or replace trigger users_trigger --users_trigger 触发器名称
before insert on users --users是表名
for each row
declare
nextid number;
begin
IF :new.userid IS NULL or :new.userid=0 THEN --userid是列名
select user_Sequence.nextval --user_Sequence 正是刚才创建的序列
into nextid
from sys.dual;
:new.userid:=nextid;
end if;
end users_trigger ; --users_trigger 触发器名称
附 删除触发器:drop trigger users_trigger;
再次插入数据试试效果吧!!!!
insert into users(username ) values('本山');