|
|
#1 (permalink) |
|
Üyelik Tarihi: 20.06.2002
Yer: Istanbul
Yaş: 19
Mesaj: 641
|
primary key'e sahip olmayan tablodan veri silme/düzeltme sorunu?
merhabalar, ASP üzerinde MySQL ve access ile uğraşıyorum, aklıma takılan bir soru var. genelde üzerinde uğraştığım tablolar id sütünü içeriyor. ancak diyelim ki oyle bir yapı ile karşı karşıyayız ki 9-10 sütüna sahip ve bu sütünlardan hiçbiri primary key değil, bu da bildiğiniz gibi aynı olabilecek sütünlar hatta yanlışım varsa düzeltin satırlar demek. sonuçta örneğin, düzenleme veya silme işlemi yapmak isterseniz, neye göre nasıl yapardınız? bir sütündan gelecek değerlere guvenirmyidiniz, ya da eğer ki bütün sütünları karşılaştıracaksanız (where ... and .... and ... vb. ) ilgili satırın verilerini mesela radio butonla ile nasıl gönderirdiniz? veya daha fasrklı ne çözüm üretilebilir? simiden tesekkurler ufak duzeltme: aklıma bir de verileri (düzenelemk veya silmek amacıyla seçmek için) sıralarken bir sıra numarası belirlemek ve de silme işleminde de bu sıralamayı yapıp ilgili numaraya gore de karşılık gelen veriyi silmek geldi. ancak bu ne kadar sağlıklı/hızlı bir yöntem olur, ayrıca nasıl çalıştırabiliriz böyle bir sorguyu bilmiyorum. bu konuda da bir çözüm üretilebilir mi?
__________________
bu imzayı okurken ortalama iki - üç saniye kaybettiğinizin farkındamısınız? |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 05.12.2003
Yer: İstanbul
Mesaj: 899
|
Re: primary key'e sahip olmayan tablodan veri silme/düzeltme sorunu?
Primary key olmayan tablo hic iyi olmaz. Diyelimki var boyle bir tabloya promary key olan bir field eklenebilir. Diyelim ki ekleyemiyorsun. O zaman silme yada duzeltme islemleri icin o satiri tanimlaman lazim..
UPDATE .......... WHERE isim = 'isim' AND sifre = 'sifre' seklinde, Gerekirse bir iki kıyaslama daha yapabilirsin. Ancak bahsettigin gibi birden cok satir ayni veriyi iceriyorsa boyle bir sorgu ikisini de duzeltecektir. Radio butonla gonderme kismini anlamadim. En sonda bahsettigin seyi yapmak icin tabloya bir ID field eklemekten baska bir cozumun yok. |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 680
|
Re: primary key'e sahip olmayan tablodan veri silme/düzeltme sorunu?
primary key yoksa dediğin gibi bütün kolonlara bakman gerekir. primary keyin olması elbette şart değil ama bu tip şeylere tablo/sistem tasarlanırken karar verilir. zannımca gereksiz olduğunu düşünsenizde her tabloda bir primary key olması sisteme zarar vermez.
sıralama yapıp ilgili satırı silmen senin uygulamana bağlı bir şey. o satır nosu sürekli değişebilir ve de yanlış şeylere neden olabilirde olmayabilirde. phpmyadminden örnek vermek gerekirse primary key yoksa bütün kolonlara bakıyor. |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,973
|
Re: primary key'e sahip olmayan tablodan veri silme/düzeltme sorunu?
sıralamadan kastın sanırım kaçıncı satırda olduğu gibi bir değer tutmak. ancak şurası var ki, veritabanındaki veri alındıktan sonra tablo serbest bırakılır. bu esnada üst sıralarda yer alan kayıtlardan (üst sıra derken order by a göre) biri başka bir kullanıcı tarafından silinirde, yanlış veriyi güncellemeye sebebiyet verebilir. anlamı yok yani
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 20.06.2002
Yer: Istanbul
Yaş: 19
Mesaj: 641
|
Re: primary key'e sahip olmayan tablodan veri silme/düzeltme sorunu?
cevaplarınız için teşekkürler. düşündüpüm gibi en mantıklı yol sizin de söylediğiniz gibi sütünların eşitliğini sınamak.
@blurise; radio butondan kastım şu, örneğin dediğimiz gibi 8 sütün ve prim, key yok diyelim, listenen verilerden bir tanesini silmek istiyorum, bunu da radio butonla bir forma gondereceğim, value olarak id=... belirtemeyeceğimden dolayı bunun yerine silmek için kullanılacak sorgu (bahsettiğimiz where .. and ... kısımları) için verileri radio ile nasıl yollayabileceğimdi. bnim aklıma silincekveri('birincideger','ikincideger','ucuncud eger') giibi yolluyayıp, gelen sonuçlara gore de where ..=birincideger and ... yapmak geliyor. boyle dizi degiskenler gibi deil de daha basit bir yol olabilir mi? ancak bu yontemimim ne kadar sağlıklı olabileceği konusunda şüphelerim de var. son bir + olarak da şunu sormak istiyorum, var olan bir tablonun (MySQL veya access) sadece yapısını veya içeriğindeki herşeyi basit(!) bir SQL sorgusuyla nasıl kopyalayabiliriz? bnim bulduum yontemler genelde "DESCRIBE tablo" gib, bir sorgu ile tablonun yapsını analiz edip ona uygun (Create tabloadi ....) gibi sorgu hazırlamak ve uzerine de butun verileri mysqlde for .. next veya access/mssql de recordset ile kaydetmek. bunu daha da kısaltabilirmyiz?
__________________
bu imzayı okurken ortalama iki - üç saniye kaybettiğinizin farkındamısınız? |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
![]() |
| Etiketler |
|
sorunu , silmeduzeltme , veri , tablodan , olmayan , sahip , keye , primary |
|
|
Zoque'a hoşgeldiniz!