re: 用 SQL語句 實現某個字段自增 小虎(年輕) 2007-04-19 14:16
Oracle 沒有自增字段,可以通過以下方式實現:
1.建立測試數據表
CREATE TABLE TEST
(
ID NUMBER,
NAME VARCHAR2(20),
PRIMARY KEY(ID)
);
2.創建序列
CREATE SEQUENCE SEQ_TEST;
3.創建觸發器
CREATE OR REPLACE TRIGGER AUTOINCREMENT
BEFORE INSERT ON TEST
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT SEQ_TEST.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
4.插入數據
INSERT INTO TEST(NAME) VALUES('NAME1');
5.查看插入結果
SELECT * FROM TEST;
但是,這樣做有一個缺點,程序移植的時候就要做很大的變動,所以非要用這種數據庫自增的方式的話建議建一張表用來記錄另一張表中插入數據的最大ID,下一次插入數據時讀這張表再加1 。