DUPLICATE KEY UPDATE INSERT ON MySQL'de Ne Yapar?

Duplicate Key Update Insert On Mysql De Ne Yapar



Bir MySQL veritabanıyla çalışırken, kullanıcılar bir tabloya yeni bir kayıt eklemeye çalışırken ara sıra yinelenen bir anahtar ihlali hatasıyla karşılaşabilir. Bu hata, aynı birincil anahtara veya benzersiz anahtara sahip bir satır zaten mevcut olduğunda ortaya çıkar. Ancak bu sorun, mevcut kayıtları yeni değerlerle güncelleyerek giderilebilir. Bu gibi durumlarda, “ KOPYALANAN ANAHTAR GÜNCELLENMESİNE EKLE ” özelliği bu sorunu etkili bir şekilde çözecektir.

Bu gönderi, 'YİNE ANAHTAR GÜNCELLEMESİNE EKLE'nin ne olduğunu ve MySQL'de nasıl çalıştığını gösterecek.







DUPLICATE KEY UPDATE INSERT ON MySQL'de Ne Yapar?

MySQL'de, KOPYALANAN ANAHTAR GÜNCELLENMESİNE EKLE iki işlevi tek bir işlemde birleştiren INSERT deyiminin gelişmiş bir özelliğidir. Örneğin, verilen kayıt mevcut değilse, belirli bir tabloya bir kayıt ekler. Ancak, istenen kayıt zaten mevcutsa, mevcut kaydı yeni değerle güncelleyecektir.



DUPLICATE KEY UPDATE ÜZERİNE EKLE özelliğini etkinleştirmek için, kullanıcıların aşağıda verilen sözdizimini takip etmesi gerekir:



TAKIN [ Tablo ismi ] ( [ sütun_1 ] , [ sütun_2 ] , ... )
DEĞERLER ( [ val_1 ] , [ val_2 ] , ... )
KOPYALANAN ANAHTAR GÜNCELLENMESİ ÜZERİNE [ sütun_1 ] = [ val_1 ] , [ sütun_2 ] = [ val_2 ] , ...;





tablo_adı, col_1, col_2, … ve val_1, val_2, …, vb. yerine istediğiniz tablo adını, sütun adlarını ve değerleri belirtin.

Örnek: MySQL'de INSERT ON DUPLICATE KEY UPDATE Özelliği Nasıl Kullanılır?



Öncelikle MySQL veritabanına uygun ayrıcalıklarla bağlanın ve ardından “linuxhint_author” tablosunun verilerini getirmek için aşağıdaki komutu çalıştırın:

SEÇME * linuxhint_author'DAN;

Select komutu, 'linuxhint_author' tablosunun tüm kayıtlarını alır:

Şimdi, 'ON DUPLICATE KEY UPDATE' özelliği etkinken 'linuxhint_author' tablosuna belirli bir kayıt eklemek veya güncellemek için aşağıdaki SQL komutunu çalıştırın:

linuxhint_author İÇİNE EKLE ( İD , isim, yaş, yazar Sıralaması, e-posta )
DEĞERLER ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
KOPYALANAN ANAHTAR GÜNCELLENMESİ ÜZERİNE
ad = DEĞERLER ( isim ) ,
yaş = DEĞERLER ( yaş ) ,
yazar Sıralaması = DEĞERLER ( yazarSırası ) ,
e-posta = DEĞERLER ( e-posta ) ;

Belirtilen kayıt 'linuxhint_author' tablosunda mevcut olmadığından, seçilen tabloya başarıyla eklenecektir:

Yinelenen bir kayıt ekleyelim ve ' KOPYALANAN ANAHTAR GÜNCELLENMESİ ÜZERİNE ” MySQL'de özellik çalışması:

linuxhint_author İÇİNE EKLE ( İD , isim, yaş, yazar Sıralaması, e-posta )
DEĞERLER ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
KOPYALANAN ANAHTAR GÜNCELLENMESİ ÜZERİNE
ad = DEĞERLER ( isim ) ,
yaş = DEĞERLER ( yaş ) ,
yazar Sıralaması = DEĞERLER ( yazarSırası ) ,
e-posta = DEĞERLER ( e-posta ) ;

Aşağıdaki parçadan, zaten var olan kaydın yeni değerlerle başarıyla güncellendiği açıkça görülebilir:

“YİNE ANAHTARA EKLE” özelliği, tüm kayıt yerine belirli bir sütuna da uygulanabilir:

linuxhint_author İÇİNE EKLE ( İD , yazarSırası )
DEĞERLER ( 3 , 2 )
YİNE ANAHTAR GÜNCELLEMESİNDE yazarRank = DEĞERLER ( yazarSırası ) ;

Yukarıdaki kodda, '3' kimliğine sahip bir yazarın 'yazar Sıralaması' yeni bir '2' değerine güncelleniyor:

MySQL'de “YİNE ANAHTAR GÜNCELLEMESİNE EKLE” özelliği bu şekilde çalışır.

Çözüm

MySQL'de, KOPYALANAN ANAHTAR GÜNCELLENMESİNE EKLE yeni bir satır ekleme ve mevcut bir satırı güncelleme/değiştirme işlevlerini tek bir işlemde birleştirmemizi sağlayan gelişmiş bir özelliktir. Bu özellik, kullanıcıların belirli bir tabloya yeni bir satır eklemeye çalışırken 'yinelenen anahtar ihlali' hatasını önlemelerine yardımcı olur. Bu gönderi, “YİNE ANAHTAR GÜNCELLEMESİNE EKLE”nin ne olduğunu ve MySQL'de nasıl çalıştığını açıkladı.