Harun Reşit Zafer

bâki kalan bu kubbede bir hoş sadâ imiş

MySQL ile Kayıt Birleştirme (Merge)

mysqlDiyelim ki benzer yada aynı alanlara sahip iki tablonuz var. Ve birindeki kayıtları diğerine aktarmak istiyorsunuz. Bunun için MySQL’in ON DUPLICATE KEY UPDATE özelliğini kullanabiliriz. Aşağıdaki iki örneği inceleyelim.

Örnek-1: Elimizde Musteri1 ve Musteri2 tabloları olsun. Her ikisininde id(birincil anahtar) , ad, soyad, adres alanları olduğunu varsayalım.

INSERT INTO Musteri1 SELECT * FROM Musteri2 ON DUPLICATE KEY UPDATE Musteri1.adres = Musteri2.adres;

Bu komut Musteri2 tablosundaki kayıtları Musteri1 tablosuna aktarıyor. Eğer Musteri1 tablosunda aynı id değeri ile kayıt var ise o kaydın adres alanını Musteri2 tablosundaki kaydın adres değeri ile güncelliyor. Yukarıdaki komutta UPDATE’den sonra birden fazla alan da yazılabilirdi. Örneğin:

...UPDATE Musteri1.adres = Musteri2.adres, Musteri1.ad = Musteri2.ad;  gibi

Örnek-2: Elimizde aşağıdaki gibi Musteri1 ve Musteri2 tabloları olsun.

Musteri1(id, ad, soyad, cinsiyet, yas, adres)

Musteri2(id, ad, soyad, adres)

Yukarıdaki komut alanlar örtüşmediğinden çalışmaz. Komutu aşağıdaki gibi düzeltmeliyiz.

INSERT INTO Musteri1(id, ad, soyad, adres)
 
SELECT * FROM Musteri2 ON DUPLICATE KEY UPDATE Musteri1.adres = Musteri2.adres;

Bu kodlar diğer veritabanı sistemlerinde (MS SQL, Oracle, Access) çalışmazlar ama, aynı işi yapan benzer kodlar hepsi için mevcut.

Herkese kolay gelsin.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

1 Yorum

  1. Merhabalar.Ellerinize saglik.Takib etmekdeyim.Devamli olsun inwAllah.En cok hosuma gelen sitedir burasi.

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak

*

© 2016 Harun Reşit Zafer

Temayı tasarlayanAnders NorenYukarı ↑