• 28-04-2020, 04:12:30
    #1
    Merhabalar değerli forum üyeleri, foreign key yaparken her seferinde hata alıyorum bazen vermiyor hatayı nasıl çözdüğümü anlamıyorum Yardımcı olursanız çok mutlu olurum.

    'Ögrenci' tablosundaki 'Aldığı Dersler' sütununa 'Dersler' tablosundaki dersleri foreign etmek istiyorum fakat aldığım hata ;

    SQL sorgusu:
    ALTER TABLE `ogrenci` ADD FOREIGN KEY (`aldigi_ders`) REFERENCES `dersler`(`dersno`) ON DELETE RESTRICT ON UPDATE RESTRICT;

    MySQL çıktısı:
    #3780 - Referencing column 'aldigi_ders' and referenced column 'dersno' in foreign key constraint 'ogrenci_ibfk_1' are incompatible.


    şimdiden teşekkür ederim.
  • 28-04-2020, 04:23:55
    #2
    Hocam dersno kolonu uniqe mi hatta mümkünse primary key olmalı ve veritipleri aynı olmalı her iki kolonunda, sorun veritipi uyumsuzluğu gibi görünüyor fakat dersno kolonunda unique olmayan veriler varsa ondan da kaynaklanabilir.

    Bazen hata almanızın bazen almamanızın nedeni de bunlardan biridir muhtemelen
  • 28-04-2020, 04:30:47
    #3
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    Hocam dersno kolonu uniqe mi hatta mümkünse primary key olmalı ve veritipleri aynı olmalı her iki kolonunda, sorun veritipi uyumsuzluğu gibi görünüyor fakat dersno kolonunda unique olmayan veriler varsa ondan da kaynaklanabilir.

    Bazen hata almanızın bazen almamanızın nedeni de bunlardan biridir muhtemelen
    Hocam bende arastirdigim kadariyla primary key sonucu kanaatine vardim da tablo icindeki sutunlardan sadece birini primary key yapiyor yeni primary key atayacagim zaman hata veriyor ama bana 3 4 tane sutunun da primary olmasi lazim. Phpmyadmin de yeniyim, kusura bakmayin
  • 28-04-2020, 04:34:12
    #4
    Estağfurullah Hocam böyle böyle öğreniyoruz, primary key 1 tane tanımlanır, onun yerine unique key tanımlayabilirsin ama primary olmayan kolona foreign atamak performans açısından önerilmez, istersen yaparsın kullanırsın ama tavsiye etmem. Eğer böyle bişey yapman gerekiyorsa tablo tasarımını gözden geçirmen gerekir, tablo oluşturma işlemini standartlara uygun olmayan şekilde hazırlamışsın demektir. planlama yaparken her tablonun bir primary key id kolonu olmalı, ve başka tabloları ilişkilendirmek içinde bunu kullanacak şeklide tabloalrını yeniden gözden geçirmende fayda var
  • 28-04-2020, 04:35:56
    #5
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    Estağfurullah Hocam böyle böyle öğreniyoruz, primary key 1 tane tanımlanır, onun yerine unique key tanımlayabilirsin ama primary olmayan kolona foreign atamak performans açısından önerilmez, istersen yaparsın kullanırsın ama tavsiye etmem. Eğer böyle bişey yapman gerekiyorsa tablo tasarımını gözden geçirmen gerekir, tablo oluşturma işlemini standartlara uygun olmayan şekilde hazırlamışsın demektir. planlama yaparken her tablonun bir primary key id kolonu olmalı, ve başka tabloları ilişkilendirmek içinde bunu kullanacak şeklide tabloalrını yeniden gözden geçirmende fayda var
    Çok çok tesekkur ederim. Iyiki varsiniz.