[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-upsert::tr":3,"gloss-cluster-upsert::tr":26,"gloss-next-upsert::tr":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"upsert","data-infra","Upsert (Ekle-ya da-Güncelle)","Upsert, bir satır yoksa yazan, varsa güncelleyen tek bir ifadedir. Veritabanları bunu farklı yazımlarla sunar — INSERT ... ON CONFLICT, MERGE, INSERT ... ON DUPLICATE KEY UPDATE — ama amaç aynıdır: bir yazmayı bir anahtara göre etkisiz-tekrarlanabilir kılmak; böylece tekrarlamak yinelenmiş bir satır ya da bir hata değil aynı son durumu üretir. Upsert'lerin veri hatlarının ve entegrasyonların bel kemiği olmasının nedeni bu özelliktir. Bir kaynağı yeniden okuyan bir eşitleme, aynı olayı iki kez alabilen bir webhook tüketicisi, kısmi bir hatadan sonra yeniden denenen bir toplu iş — yazma anahtarlıysa ve etkisiz-tekrarlanabilirse hepsi güvenlidir, değilse hepsi yineleme üretir. Aynı akıl yürütme, geç gelen kayıtlara dayanmanın standart yolu olan ve önceki pencereyle kasten örtüşen gecelik bir yükleme için de geçerlidir. Bir upsert'in düzgün davranıp davranmayacağını iki ayrıntı belirler. Çakışma anahtarı üzerinde gerçek bir benzersizlik kısıtı gerekir; olmadığında veritabanının çakışmayı saptayacağı bir şey yoktur ve uygulama düzeyinde önce-kontrol-sonra-ekle mantığı eşzamanlılıkta yarışı kaybeder. Ve güncelleme dalı hangi sütunların üzerine yazacağını açıkça söylemelidir — her sütunu körlemesine değiştirmek, kaynağın bilmediği alanları siler: yerel olarak hesaplanmış bir durum ya da başka bir sistemin sahibi olduğu bir değer gibi. Yüksek hacimli upsert'ler dizin aramaları nedeniyle düz eklemelerden pahalıdır; bu yüzden toplu yüklemeler bazen geçici bir tabloya hazırlanıp tek seferde birleştirilir.","Upsert tek bir anahtarlı ve tekrarlanabilir ifadeyle ekler ya da günceller; veri hatlarının ona neden dayandığı ve eksik kısıtın işi nasıl bozduğu.",null,[11,14,17,20,23],{"slug":12,"name":13},"change-data-capture","Değişiklik Veri Yakalama (CDC)",{"slug":15,"name":16},"database-migration","Veritabanı Migration'ı",{"slug":18,"name":19},"delivery-semantics","Teslimat Semantiği (Delivery Semantics)",{"slug":21,"name":22},"etl","ETL (Çıkarma, Dönüştürme, Yükleme)",{"slug":24,"name":25},"idempotency","Idempotency (Idempotentlik)",[27,31,34,37,40,44,47,50,51,54,58,61],{"slug":28,"category":5,"name":29,"updated_at":30},"acid","ACID","2026-08-24T02:46:37+00:00",{"slug":32,"category":5,"name":33,"updated_at":30},"ann-search","ANN Arama (Yaklaşık En Yakın Komşu)",{"slug":35,"category":5,"name":36,"updated_at":30},"backpressure","Geri Basınç (Backpressure)",{"slug":38,"category":5,"name":39,"updated_at":30},"batch-processing","Toplu İşleme (Batch Processing)",{"slug":41,"category":5,"name":42,"updated_at":43},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":45,"category":5,"name":46,"updated_at":30},"cache","Önbellek (Cache)",{"slug":48,"category":5,"name":49,"updated_at":30},"cap-theorem","CAP Teoremi (CAP Theorem)",{"slug":12,"category":5,"name":13,"updated_at":30},{"slug":52,"category":5,"name":53,"updated_at":30},"chroma","Chroma",{"slug":55,"category":5,"name":56,"updated_at":57},"chunk-overlap","Parça Örtüşmesi","2026-08-24T03:30:02+00:00",{"slug":59,"category":5,"name":60,"updated_at":30},"columnar-storage","Sütun Tabanlı Depolama",{"slug":62,"category":5,"name":63,"updated_at":30},"connection-pooling","Bağlantı Havuzlama (Connection Pooling)"]