From: umite@migros.com.tr
Date: Thu 23 Oct 2003 - 03:34:07 EDT
Merhaba=20
Bana sorarsaniz kayit asamasina geldiginizde primery key de bulunan bir =
kayit yapmaya yeltenmeyin.=20
Bu su demek "ogrenci numarasini temin ederken unique bir deger =
olusturmalisiniz" . sequence kullanmak ilk akla gelen veya "select =
max(ogrenci_no) +1" gibi bir yontem.
Boylece once select yapmak tamamen gereksiz olacaktir. Ogrenci =
numarasinin e=FEsiz :)) olduguna kayit aninda guvenebilirsiniz.
sorunuzunc cevab=FDna gelince benim onerim:
=DDkincisi daha mantikli=20
Cunku birinci durumda;
Begin=20
select * from ogrenci_table where ogrenci_no =3D '12345' ;
Exception when NO_DATA_FOUND Then=20
Begin=20
Insert into ogrenci_table(ogr_no,og_adi) =
values(ogrenci_no,adi)
Exception when Others Then=20
errorMess(........)
End when OTHERS Then
errorMess(.......)=20
End=20
kodu yerine Ikinci yontemde kod
Begin=20
Insert into ogrenci_table(ogr_no,og_adi) =
values(ogrenci_no,adi)
Exception when Others Then=20
errorMess(........)
End=20
daha kucuk olacaktir. ve tek SQL cumlesi ile bitecektir.
=DDyi calismalar=20
Umit Erinc=20
-----Original Message-----
From: Fuat Altun [mailto:faltun@iso.org.tr]
Sent: Thursday, October 23, 2003 9:53 AM
To: java_tr@yahoogroups.com; linux-programlama@liste.linux.org.tr
Subject: ***SPAM***
Merhabalar,
Sorum veri taban=FDna kayit ile ilgili,
Bir tabloya kayit eklemek istiyorum. Ve primary key'im ogrencino olsun.
=20
Tabloda var olan bir ogrenci no ile baska bir ogrenci kayit =
edilmemelidir.
Peki benim bu durumda kontrolu ne sekilde yapmam daha dogru olur?
1-) kaydi okumadan once primary key'e gore okuyup eger ayni ogrenci no =
varsa
hata verdikmek mi.......?
Yoksa
2-)veritabaninin kendi exception yapisinin olusturacagi "uniq key value
already exits" gibi degeri kontrol etmekmi?
=20
=DDnsallah anlatabilmisimdir :-)
=20
tsk
=20