建立一个序列,给你的表添加一列,然后插入的同时加上seq.nextval
解决方案 »
- 【急急急】EXECUTE IMMEDIATE 'DROP TABLE T_PMSCONST';出错
- 哪位帅哥美女 来给看看 这个update怎么实现 谢谢!
- 关于cat命令的问题
- oracle apex 中 flash 的保存问题
- 有关oracle的事务解决问题—求高手。
- dmp文件导入的时候出错,字符集的问题。。
- 初级问题:用Access 访问 Oracle 数据库 1000分重谢 ---急
- 使用IMP如何只导入触发器
- 如何将ORACLE的表内容导出为一个文本文件??
- oracle中可以调用MATLABL封装的接口吗?
- 怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用OCI??怎么使用
- 为什么我的oracle数据表不能insert?
上面所说的sequence是一种,还可以用函数方式来虚拟自增长函数,即给列的default值用一个自定义函数表示。当然,这个函数并不好写,因为按照常规是不允许通过编译的。不过有一些办法可以绕过编译器。(在网上搜索一下,可以得到答案)
ORACLE中还是不要用MSSQL的思维来做,呵呵。
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
NOCACHE NOORDER;CREATE OR REPLACE TRIGGER USERADD
BEFORE INSERT ON MEMBERRG
FOR EACH ROW
BEGIN
SELECT LPAD(USERID.NEXTVAL,4,'0') INTO :NEW.NUM FROM DUAL;
END;
create sequence seq_name
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
可以直接在插入时调用seq_name.nextval;
如insert into table_name(proid) values(seq_name.nextval);
2.创建触发器:
create or replace trigger trg_name
before insert on table_name
for each row
begin
select seq_name.nextval into :new.proid from dual;
end;
/
可实现自动将proid字段加1
插入时不用管它。
就是发生插入错误或者删除记录后,相应的记录编号就会被跳过
不能顺序标识记录