En iyi yanıtlayıcılar
Otomatik id'yi başka tabloya atama

Soru
-
Yanıtlar
-
Tabi size attığım kaynak link yararlı olmadıysa Bu videoyuda izleyebilirsiniz . bilmemeniz önemli değil sorunu anlamanız ve çözümünü bulmanız önemli. Foreign key yapısı sizi fazla zorlayacak bir yapı değil . Sql komutlarının karma karışık olanları da mevcut basit olanları da mevcut . Size gereken şey sadece aklınızda yapmak istediğiniz şeye dair bir planlama olması .
Altan Özdemir
- Yanıt Olarak İşaretleyen aksakalll 27 Temmuz 2018 Cuma 12:39
Tüm Yanıtlar
-
Her ürün için bunu yapmasını istiyorsan kayıt esnasında yapman gerekli , Bunun için Satış tablosundaki id alanı ile SatışKalem tablosundaki Satisid yi foreign key yaparsın . Eklerken de o alanı doldurmazsan sana uyarı verecektir ve boş geçemeyeceksin , boş geçemediğin gibi o alana Satis tablosundaki id lerden başka yazarsan da uyarı alırsın . Ama sonradan ekleme yapacaksan burada sen direkt olarak bir update geçemeyeceksin . Çünkü mantıken bir bazayı ahmet te alabilir ali de .
Altan Özdemir
-
-
Ben zaten sana onu anlattım ama kodla atayım
Alter table SatışKalem Add Constraint fk_SatisKalem_SatisId Foreign Key (SatisId) References Satis(Id)
Bu sorguyu çalıştırdıktan sonra yeni SatisKalem tablona yeni bir kayıt eklerken SatisId ye Satis tablosunda yer alan Id değerinden farklı bir değer girmek istersen ya da boş bırakırsan uyarı alacaksın ve insert işlemi yapamayacaksın.
Eğer yanlış anladıysam özür dilerim .
Altan Özdemir
-
-
Otamatik id dediğin şey senin Identity değer alan Tablo_Id in bu diğer tabloların id leri ile bağımsızdır . Sen buraya bir kayıt eklerken istesende istemesende Satın alan kişinin id sini belirtmek zorundasın . Bunu bir uygulama üzerinden yapıyorsan o bilgiyi oradan alırsın ve eklersin , bunu direkt sql üzerinden insert ile yapıyorsan kendin elle vermek zorundasın . Satis tablonda 100 adet satis olsun , bunların detayını satış kalem tablonda tutmak istiyorsan ve o kalemin hangi satışa ait olduğunu belirtmek istiyorsan(ki bunu istemek zorundasın ) o alanı foreign key yaparsın ve satis id sini girersin . Sql ya da herhangi bir programlama dili direkt olarak boşlukta yer alan iki objeyi kafasına göre birleştiremez. Bir referans isteyecektir bu refarans sql de foreign keydir.
Altan Özdemir
-
SqlCommand komut2 = new SqlCommand("Alter table SATIS_KALEM Add CONSTRAINT fk_SATIS_KIMLIK FOREIGN KEY (SATIS_KIMLIK) References SATIS(Kimlik)", baglan);
Kod satırım bu şekilde ve şöyle bir hata alıyorum başka bir yolu veya çözümü varmıdır altan bey ?
There is already an object named 'fk_SATIS_KIMLIK' in the database.
Could not create constraint or index. See previous errors.'
-
-
-
Tabi size attığım kaynak link yararlı olmadıysa Bu videoyuda izleyebilirsiniz . bilmemeniz önemli değil sorunu anlamanız ve çözümünü bulmanız önemli. Foreign key yapısı sizi fazla zorlayacak bir yapı değil . Sql komutlarının karma karışık olanları da mevcut basit olanları da mevcut . Size gereken şey sadece aklınızda yapmak istediğiniz şeye dair bir planlama olması .
Altan Özdemir
- Yanıt Olarak İşaretleyen aksakalll 27 Temmuz 2018 Cuma 12:39
-
Bende aynı sorunu dün yaşadım.Ben ilk tablomdaki veriyi veritabanına ekliyorum daha sonra ıd ye göre ters sıralama yapıyorum ve gelen ilk veriyi alıyorum.Bu query ile son kaydedilen id yi almış oluyorum daha sonra diger tabloma bu id yi kullanarak kayıtlarımı gerçekleştiriyorum.
...
-
Tabi bu senin çözümün olabilir ama konuya genel olarak bakıp , birden fazla projede benzer durumda karşılaşacağını düşünürsen foreign key daha mantıklı gelecektir . Burada satışa ait satış detaylarını listeledin , ileride başka bir çalışmanda kullanıcı üzerine kullanıcı loglarını tutmak isteyebilirsin . İşte böyle bir durumda son id yi almak işine yaramayacaktır . Hatta aynı anda birden fazla kullanıcı satış işlemi için bir program ile ekleme yapıyorsa orada hata alma olasılığın çok yüksek .
Altan Özdemir