【发布时间】:2012-03-14 18:04:49
【问题描述】:
这是我的问题我有这段代码可以在 oracle 数据库中创建一个自动增量变量:
CREATE TABLE Korisnici
(
id_korisnika number PRIMARY KEY,
ime_korisnika varchar2(200),
prezime_korisnika varchar2(200),
broj_telefona varchar2(30),
adresa_korisnika varchar2(400)
)
/
create sequence test_seq
start with 1
increment by 1;
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON Korisnici FOR EACH ROW
BEGIN
SELECT test_seq.NEXTVAL
INTO :NEW.id_korisnika
FROM DUAL;
END;
/
如果我从一开始一切都很好,我的数字是 1,2,3,4.... 我关闭程序,再次打开它,所以再次启动了 oracle 数据库连接。我再添加一个输入,我有像 20,21,22,23 这样的数字...... 我将程序放在我的 android 上并从不同的设备连接,当我输入一个用户时,我有 30,31,33,34...
为什么会这样?以及如何解决?
谢谢
编辑:
这是我从数据库中读取数据的过程
CREATE OR REPLACE PROCEDURE Citanje_korisnika( p_rc OUT SYS_REFCURSOR )
AS
BEGIN
OPEN p_rc
FOR SELECT *
FROM Korisnici;
END;
我是oracle数据库的新手。
【问题讨论】:
-
如果您提交每笔交易,那么序列会不断增加。它有什么问题?
标签: sql oracle stored-procedures triggers sequence