Oracle自增字段的實現
最近在做系統的Oracle移植,需要從MySQL移植到Oracle中,在MySQL中有自增類型的字段,在Oracle中卻沒有,需要用其它的辦法實現。在Oracle中要用一個SEQUENCE和觸發器實現。下面是我的一個實現:
?1
CREATE?TABLE?FOO
?2
(
?3
???INDEX??????????????????????????INT????????????????????????????NOT?NULL,
?4
???ABC????????????????????????????VARCHAR2(128),
?5
???DEF????????????????????????????VARCHAR2(128),
?6
???PRIMARY?KEY?(INDEXID)
?7
)?TABLESPACE?TEMP;
?8
?9
CREATE?SEQUENCE?FOO_INDEXID?INCREMENT?BY?1?START?WITH?1?MAXVALUE?999999999999?CYCLE?NOCACHE;
10
11
CREATE?OR?REPLACE?TRIGGER?INSERT_FOO_INDEXID
12
BEFORE?INSERT?ON?FOO
13
REFERENCING
14
????NEW?AS?new
15
????OLD?AS?old
16
FOR?EACH?ROW
17
BEGIN
18
????SELECT?FOO_INDEXID.NEXTVAL?INTO?:new.INDEXID?FROM?DUAL;
19
END;

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18

19

posted on 2007-03-05 10:28 風人園 閱讀(775) 評論(0) 編輯 收藏 所屬分類: Oracle