Merhabalar. C# ile bir uygulama geliştiriyorum, tabloya veri ekleme yaparken şu hatayı alıyorum,
" 0x80004005 'kisiler' tablosunda ilgili kayıtlar olması gerektiğinden kayıt ekleyemez veya değiştiremezsiniz ."
Özet olarak, kisiler tablosuna ekleme yapabiliyorum, ama kisiler tablosu primary key'i (m_no) foreign key olarak bulunduğu "ucretler" tablosunda ekleme yaparken bu hata oluşuyor.
28-01-2017, 01:12 (En son düzenleme: 28-01-2017, 01:15 EminA.)
Sayın Marty, sanırım primary key ve foreign key tanımlamaları ile ilgili bir sorun var. Aşağıdaki açıklamalar size yardımcı olabilir. Kolay gelsin.
SQL FOREIGN KEY Kullanımı
Temel olrak FOREIGN KEY yardımcı index oluşturmak için kullanılır. Bir tabloda "id" alanına PRIMARY KEY uygulayabiliriz. Ancak aynı tablodaki başka bir alan farklı bir tablodaki kayda bağlı çalışabilir. MS Access veritabanlarında bu duruma "İlişkili Veritabanı" deniliyor. İşte bu iki tablo arasında bir bağ kurmak gerektiği durumlarda FOREIGN KEY devreye giriyor. Böylece tablolar arası veri akışı daha hızlı olduğu gibi ileride artan kayıt sayısı sonucu veri bozulmalarının önüne geçilmiş olunur.
Olayı tablolar üzerinden anlatmak gerekirse, aşağıdaki gibi bir Personel tablomuz olsun.
p_id Adi_soyadi
1 Emin A
2 Ben Kendim
Bu tabloyla beraber çalışan Satışlar tablomuz da aşağıdaki gibi olsun.
s_id Urun Satis_ fiyati satan_id
1 LCD Tv 1300 1
2 Ses sistemi 750 1
3 Buzdolabı 1100 2
4 Çamaşır Makinesi 950 1
Burada Personel tablomuzdaki "p_id" alanı ve Satışlar tablomuzdaki "s_id" alanları Primary Key ile indexlenmiştir. Ancak Satışlar tablosunda, ilgili satış işleminin hangi personel tarafından yapıldığı bilgisini tutan "satan_id" isimli alan vardır. Yazacağınız programda veritabanından bilgileri çekip ekrana aktaracağınız için iki tablo arasında bir ilişki vardır. Bu ilişkiyi ise Personel tablosundaki "p_id" ile Satışlar tablosundaki "satan_id" alanları belirler. Dolayısı ile "satan_id" alanına FOREIGN KEY yani ikincil index tanımlayarak aradaki veri bütünlüğünün sağlanmasını sağlarken aynı zamanda da veri akışının da hızlanmasını sağlamış oluruz.
- Var olan Tabloya FOREIGN KEY Tanımlama Örneği
MySQL / SQL Server / Oracle / MS Access ortamlarında kullanım biçimine örnek: