none
Otomatik id'yi başka tabloya atama RRS feed

  • Soru

  • Satış tablosundaki otomatik id yi Satış Kalem Tablomdaki satış kimliğe yazdırmak istiyorum ve her ürün için bunu yapmasını istiyorum 

    Satış

          id 

               ->  1-Ahmet

    SatışKalem

         Satisid

               -> 1-Baza

              -> 1-Çamaşır makinesi

              -> 1-


    25 Temmuz 2018 Çarşamba 01:23

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
    27 Temmuz 2018 Cuma 07:20

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

    25 Temmuz 2018 Çarşamba 06:32
  • Evet o yüzden satışkalem tablosunda bir tane id daha var çakısmasın diye o otomatik id zaten. Ben satış formundaki otomatik id yi satış kalemdeki satış id ye nasıl atıyabilirim
    25 Temmuz 2018 Çarşamba 09:55
  • 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

    • Yanıt Olarak İşaretleyen aksakalll 25 Temmuz 2018 Çarşamba 11:36
    • Yanıt İşaretini Geri Alan aksakalll 25 Temmuz 2018 Çarşamba 22:46
    25 Temmuz 2018 Çarşamba 10:35
  • Farklı bir değer girme veya boş bırakma durumu nasıl olabilir ki satış tablosunda ki otomatik id kayıt eklediğim sürece üreticek
    25 Temmuz 2018 Çarşamba 11:36
  • 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

    25 Temmuz 2018 Çarşamba 12:51
  •                 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.'


    25 Temmuz 2018 Çarşamba 18:33
  • Beni yanlış anladınız , bu kodu direk olarak sql üzerinde çalıştırın . Ardından standart şekilde insert işleminize devam edin . Bunu ileri sarmadan izlemeni öneririm . 

    Altan Özdemir

    26 Temmuz 2018 Perşembe 05:55
  • malasef altan bey ben yapamadım bu işlemi sql kullanmayı ve sql komutlarını çok iyi bilmiyorum 
    27 Temmuz 2018 Cuma 00:49
  • 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
    27 Temmuz 2018 Cuma 07:20
  • 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.

    ...

    27 Temmuz 2018 Cuma 08:18
  • 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

    27 Temmuz 2018 Cuma 12:01