lostyazilim
tr.link

Foregin key mantığı

3 Mesajlar 988 Okunma
acebozum
tr.link

PhpCode PhpCode Aslı ile Mecnun Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum İstanbul Avrupa
  • Ad Soyad U** A**
  • Mesajlar 287
  • Beğeniler 64 / 43
  • Ticaret 7, (%100)
Arkadaşlar foregin key mantığını bir türlü çözemedim bilgili arkadaşlar yardımcı olurlarsa sevinirim. Mesela merak ettiğim konu şu

montaj tablomda montaj_no ve icerik alanım var
siparis tablomda da aynı alanlar mevcut

Montaj tablosu
montaj_no icerik
250 araba
251 ev

Siparis Tablosu
montaj_no icerik
250 araba
250 araba
251 ev
251 ev

Montaj tablosunda montaj_noya göre değişiklik yaptığımda siparis tablosunda montaj_no 250 olan alanlarda değişiklik yapmak istiyorum yani şöyleki;

montaj tablosu
montaj_no icerik
250 otomobil

olduğunda
siparis alanındaki icerikte otomobil olacak ancak bunu montaj_no üzerinden yapmam gerek yani montaj tablosundaki montaj_no su 250 olan alanın icerik alanında bir değişiklik yaptığımda, siparis tablomdaki montaj_no su 250 olan alanın icerik alanında değişiklik yapılabilir mi? direkt olarak icerik alanlarını foregin key yaptığım zaman karışıklık oluyor.
 

 

elektronikssl
webimgo

TradeOne TradeOne Yazılım geliştiricisi Kullanıcı
  • Üyelik 02.12.2013
  • Yaş/Cinsiyet 46 / E
  • Meslek Yazılım geliştiricisi
  • Konum Almanya
  • Ad Soyad H** T**
  • Mesajlar 123
  • Beğeniler 59 / 66
  • Ticaret 4, (%100)
Değerli arkadaşım, FOREIGN KEY'den ziyade, bahsettiğiniz durum TRIGGER ile yapılır.


DELIMITER $$
CREATE TRIGGER `montajsiparis` AFTER UPDATE ON `montaj`
FOR EACH ROW
BEGIN
UPDATE siparis s, montaj m set s.icerik = m.icerik where m.montaj_no = s.montaj_no;
END$$
DELIMITER ;


kolay gelsin.
 

 

PhpCode PhpCode Aslı ile Mecnun Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Web Master
  • Konum İstanbul Avrupa
  • Ad Soyad U** A**
  • Mesajlar 287
  • Beğeniler 64 / 43
  • Ticaret 7, (%100)

TradeOne adlı üyeden alıntı

Değerli arkadaşım, FOREIGN KEY'den ziyade, bahsettiğiniz durum TRIGGER ile yapılır.


DELIMITER $$
CREATE TRIGGER `montajsiparis` AFTER UPDATE ON `montaj`
FOR EACH ROW
BEGIN
UPDATE siparis s, montaj m set s.icerik = m.icerik where m.montaj_no = s.montaj_no;
END$$
DELIMITER ;


kolay gelsin.


çok teşekkürler, trigger araştırayım o vakit
 

 

wmaraci
wmaraci
Konuyu toplam 4 kişi okuyor. (0 kullanıcı ve 4 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al