你可以建一个触发器,在对这个表进行insert和update的时候,统计表中的记录数,然后更新表中的记录数的那个字段!
解决方案 »
- 表中的主键存在外键关联,禁止删除记录以及更新主键
- sys_connect_by_path函数
- 请教一个问题:想写个存储过程统计连续7天字段RSSI_avg_m超过-95的数据
- OLEDB 访问 oracle 问题
- 谁能把此语句接下去写玩??谢谢!在线等待!可用存储过程!
- RedHat9安装Oracle9i的问题,急!!
- ORA-12154 TNS:could not resolve service name,请问这个错误如何解决?
- 重发
- sql server 中基础概念 如何和oracle中的对应起来,和谁对应?up 有分
- 如何实现库内数据的增量备份?
- oracle:一条update语句,请教!
- ***怎么实现这样的查询?先查出所有的信息,最后进行统计。详情请进!***
并没有减小,不知我说清楚了吗?
我已经:(通过insert触发自增)
Create Sequence id
Start With 1
Increment By 1;CREATE OR REPLACE TRIGGER admin_RIGGER
BEFORE INSERT
ON admin FOR EACH ROW
BEGIN
SELECT id.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
select * from admin;delete * from admin;insert into admin(userName,password,flag,lastLogin,lastLoginIP )
values ('handsome3','1111','webmaser',to_date('2003-02-27','yyyy-mm-dd'),'223.1.05.6');
但是当我删除当前记录后,插入新的一条记录时,
我发现自增字段的数值并不是没有变小,仍是按照原来的大小在自增,
而我的想法时要求他在删除后,字段再删除的基础上增加,
Create Sequence id_delete Start With 1 Increment By 1;CREATE OR REPLACE TRIGGER admin_RIGGER_delete
BEFORE DELETE
ON admin FOR EACH ROW
BEGIN
SELECT id_delete.NEXTVAL FROM DUAL;
END;
/CREATE OR REPLACE TRIGGER admin_RIGGER_insert
BEFORE INSERT
ON admin FOR EACH ROW
BEGIN
SELECT (id_insert.NEXTVAL - id_delete.NEXTVAL) INTO :NEW.id FROM DUAL;
END;
/
--------------------------------------
楼主是要这个吗?但是这个id也不可靠啊
CREATE OR REPLACE PACKAGE pkg_test
AS
num number:=1;
END pkg_test;
/create or replace trigger name_tri
before insert or delete on table_name
for each row
begin
if inserting then
select pkg_test.num into :new.id from dual;
pkg_test.num:=pkg_test.num+1;
else
pkg_test.num:=pkg_test.num1-1;
end if;
end;
/
Start With 1
Increment By 1;若表中保留了id=1-3的记录,你也可以将Start With 1改为Start With 4,来达到目的。
殊不知,这个sequence只能作为唯一ID,要想让他作别的用途,就再加一个列吧!