Merhaba arkadaşlar.
Oracle da Mysql / access vs. databaseler de bulunan Auto increment field olayı yoktur. Bunun yerine Oracle da rowid kavramı vardır. ROWID database üzerinde uniq (benzersiz) olan ve her bir satırı ifade eden alfanumerik karakterlerdir.

Oracle da auto increment bir alanı kendimiz pl/sql kullanarak oluşturmamız gerekir.
İlk önce tablomuzu oluşturalım.

CREATE TABLE deneme
(id NUMBER PRIMARY KEY,
adi VARCHAR2(30),
soyadi varchar2(30)
);
ID--ADI--SOYADI
fieldlerinden oluşan bir tablo oluşturduk.

Oracle da SEQUENCE objesi ardışık sayı üretmememizi sağlar. ID alanını auto increment yapıp 1 den başlayıp her kayıtta sonsuza a kadar artmasını sağlayacağız. Bunun için 1 den başlayıp sonsuz a kadar devam edicek bi sequence oluşturalım.
CREATE SEQUENCE deneme_sequence
START WITH 1
INCREMENT BY 1;
Sequence i oluşturduk fakat bunu tabloda kullanmak için birde trigger a ihtiyacımız var. Bu trigger tabloya insert işleminden önce sequence i tetikleyip sequence den sıradaki numarayı alıcak.
CREATE OR REPLACE TRIGGER deneme_trigger
BEFORE INSERT
ON deneme
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT deneme_sequence.nextval INTO :NEW.ID FROM dual;
END;
Trigger i da oluşturduktan sonra auto increment olayını yapmış bulunmaktayız.

şimdi tablomuza kayıt yapabiliriz.

INSERT INTO deneme (adi,soyadi) VALUES ('ahmet','deniz');
INSERT INTO deneme (adi,soyadi) VALUES ('mehmet','guney');
INSERT INTO deneme (adi,soyadi) VALUES ('sevgi','guneri');
Sonuç aşağıdaki gibi olucaktır:
select * from deneme
NO -  ADI  -    SOYADI
 1     ahmet     deniz
 2     mehmet   guney
 3     sevgi       guneri
anlatım bozukluğu için özür dilerim.
Sorularını varsa cevaplamaktan mutluluk duyarım.