题目:插入一条用户记录,使用序列生成主键
请举个例子,最好有代码的
请举个例子,最好有代码的
解决方案 »
- Oracle插入中文出现乱码
- (DBA)如何用sql语句进行“数据比对”?怎么个比对法???
- 还是一个SQL语句请教。
- oracle 10g数据库恢复出现问题 急救!!
- 怎么在linux操作系统中重启远程oracle服务器的监听器?
- 有没有Oracle for OleDb的独立驱动?
- PL/SQL中,主函数中使用BEGIN...EXCEPTION...END模块的效率问题。听听大家的意见
- 求一个SQL语句,急。
- 初学提问:oracle9i导入导出简单问题
- 大家来研究一下这个存储
- 求SQL语句
- 你好,我現在想學習ORACLE,自己PC上裝的XP個人版本,我如果想裝ORACLE,能裝企業版本嗎?還是其他版本。 謝謝回復。
insert into test(PID)
values(seq.nextval)
不就行了
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; 一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache;再插入给表中的主键insert sequence数据
insert into tab_1(PK_ID) values(S_Seq.nextval)
--1、首先创建一个序列,用下面的可以简单的创建,最小值默认1,每次递增1,完全符合要求,没有必要自己搞麻烦!create sequence seq_name;--2、创建表create table admin(aid varchar(10),aname varchar(20));--3、创建个触发器,用于往表中自动增长列插入值create or replace trigger admin_tg
before
insert
on admin for each row
begin
select seq_name.nextval into :new.aid from dual;
end;--4、执行语句insert into admin(aname) values('admin11') 插入两列的值为:1,admin11
insert into admin(aname) values('admin22') 插入两列的值为:2,admin22
insert into admin(aname) values('admin33') 插入两列的值为:3,admin33
insert into admin(aname) values('admin44') 插入两列的值为:4,admin44