ysu_dong

导航

 

oracle 中没有auto_increment属性,所以我们必须换一种方法实现。一般常用的方法为创建sequence,然后为对应表的创建trigger。如下:

--建表
CREATE TABLE CHIP01.DX_TEST
(
  ID        NUMBER                              NOT NULL,
  STU_ID    NUMBER                              NOT NULL,
  STU_NAME  VARCHAR2(200 BYTE)                  NOT NULL,
  STU_ADD   VARCHAR2(500 BYTE),
  STU_AGE   NUMBER(5)                           NOT NULL
);
--主键
ALTER TABLE CHIP01.DX_TEST ADD (
  CONSTRAINT P_ID
 PRIMARY KEY
 (ID)
);
--UNIQUE KEY
ALTER TABLE DX_TEST ADD CONSTRAINT U_STU_ID UNIQUE(STU_ID);

--
创建sequence CREATE OR REPLACE SEQUENCE AUTO_INCREMENT START WITH 1 NOMAXVALUE MINVALUE 1 NOCYCLE NOCACHE; --创建trigger CREATE OR REPLACE TRIGGER AUTOINCREMENT BEFOR INSERT ON DX_TEST REFERENCING NEW AS New OLD AS Old BEGIN FOR EACH ROW SELECT AUTO_INCREMENT.NEXTVAL INTO :NEW.ID FROM DUAL; END AUTOINCREMENT;

 

 

posted on 2013-01-22 13:56  ysu_dx  阅读(266)  评论(0)    收藏  举报