MySQL MariaDB

MySQL Ekle Yinelenen Anahtarı Yoksay

MySQL Ekle Yinelenen Anahtarı Yoksay
Tablolarda veya sonuç kümelerinde genellikle birbiriyle çelişen veriler vardır. Ayrıca düzeltilmesi zaman alıcıdır ve sıklıkla tekrarlanan kayıtlardan kaçınılması gerekir. Yinelenen kayıtları belirlemek ve bunları tablolardan herhangi birinden silmek gereklidir. Bu bölüm, bir tablo içinde yinelenen verilerin görünmesinin nasıl önleneceği ve mevcut yinelenen kayıtların nasıl ortadan kaldırılacağı hakkında ayrıntılı bilgi verecektir. Bu kılavuzda, hatayı önlemek için INSERT IGNORE yan tümcesini nasıl kullanacağınızı öğreneceksiniz.

Sözdizimi:

İşte INSERT IGNORE sorgusunun sözdizimi.

>> tablo_adı(sütun1, sütun2, sütun3) DEĞERLERİNE IGNORE EKLE (değer_listesi), (değer_listesi), (değer_listesi);

Workbench aracılığıyla IGNORE EKLE:

MySQL Workbench 8'inizi açın.0 sisteminizden alın ve veritabanı örneğine bağlayın.

Komut alanında, birinin “EŞSİZ” olarak belirtilmesi gereken dört sütunlu bir “Çalışan” tablosu oluşturmanız gerekir. Bu tabloyu oluşturmak için gezgin sorgu alanında aşağıdaki sorguyu deneyin. Tüm sorguyu seçin ve yürütmek için flaş işaretine tıklayın.

>> CREATE TABLE Çalışan (ID int PRIMARY KEY NOT NULL, Name varchar(50) NOT NULL, Age Varchar(50), Maaş varchar(50), UNIQUE (ID));

Oluşturulduktan sonra, “veri” veritabanının altındaki “Tablolar” seçeneği altındaki listede “çalışan” tablosunu bulabilirsiniz.

Izgara görünümünde herhangi bir sorgu yazmadan kayıtları girebilirsiniz. Bu nedenle, "çalışan" tablosunun ızgara görünümünü açın ve aşağıda gösterildiği gibi bazı kayıtları buraya ekleyin. Tüm benzersiz kayıtları herhangi bir kopya olmadan girdik. Değişiklikleri uygulamak için 'Uygula' düğmesine basın.

Yukarıda girdiğimiz kayıtlarla ilgili sorguların olduğu yeni bir pencere açılacaktır. Bu ekrana “İnceleme” ekranı denilebilir. Bir şeyi değiştirmek istersen, burada yapabilirsin. Aksi takdirde, sorguları yürütmek için Uygula düğmesine basın.

Gördüğünüz gibi, sorgu başarıyla yürütüldü ve kayıtlar veritabanına ve “Çalışan” tablosuna kaydedildi. "Kimlik" sütununa herhangi bir yinelenen değer eklemiş olsaydık, bu bir hata oluştururdu. “Bitir” düğmesine dokunun.

Bu tamamen ızgara görünümüyle ilgiliydi. Şimdi sorgu alanı aracılığıyla kayıtları ekleyeceğiz. Bu arada, çıktıyı kontrol etmek için bu sefer yinelenen kayıtlar ekliyoruz. Bu nedenle, iki değer listemizin olduğu aşağıdaki “INSERT” sorgusunu denedik. Her iki değer listesi de 'ID' sütununda aynı değere sahiptir. Sorguyu seçin ve sorguyu yürütmek için flaş işaretine basın.

Sorgu düzgün çalışmayacak ve resimde gösterildiği gibi INSERT komutunda yinelenen değerler nedeniyle bir hata üretecektir.

Şimdi yukarıdaki sorguyu INSERT IGNORE yan tümcesiyle deneyin ve sunulduğu gibi çalıştırın.

Çıktı alanında bir hata oluşturmadığını ancak komutun yinelenen değerler içerdiğine dair bir uyarı verdiğini görebilirsiniz.

"Çalışan" tablosunun ızgara görünümünü yenileyin. INSERT IGNORE sorgusu yarı çalıştı. İlk değer listesini tabloya ekledi, ancak ikinci değer listesi, tekrarlanan “13” değeri nedeniyle yok sayıldı.

Komut Satırı Kabuğu aracılığıyla IGNORE EKLE:

Bu kavramı anlamak için, sisteminizde MySQL komut satırı istemci kabuğunu açalım. Sorduğunuzda, üzerinde çalışmaya başlamak için MySQL şifrenizi yazın.

Şimdi bir tablo oluşturma zamanı. Bunu yapmak için aşağıdaki komutu deneyin. Sütunlarından biri EŞSİZ bir kısıtlamaya sahipken 'bakan' adlı bir tablo oluşturduk. "Kimlik" sütununun, yinelenen değerleri değil, yalnızca benzersiz değerleri kabul edeceği açıktır.

>> TABLO verisi OLUŞTUR.bakan( Mid INT PRIMARY KEY UNIQUE NOT NULL, İsim VARCHAR(45), Şehir VARCHAR(45));

Sorgu uygun şekilde çalışıyor ve tablo oluşturuldu. INSERT IGNORE yan tümcesini anlamak için önce basit INSERT komutunun çalıştığını görmelisiniz. Bir tabloya birkaç bilgi verisi eklemek için INSERT komutunu kullanıyorsanız, MySQL işlemi askıya alır ve işlem boyunca bir hata olursa bir istisna oluşturur. Sonuç olarak, tabloya eklenmiş herhangi bir satır yok. Aşağıda gösterilen sorguyu kullanarak ilk kaydı “bakan” tablosuna ekleyelim. Tablo şu anda boş olduğundan ve karşılık gelecek bir kayıt olmadığından sorgu başarıyla çalışacaktır.

“ID” sütunu BENZERSİZ olduğundan, aşağıdaki komutu komut satırı kabuğunda denediğimizde bir hata üretecektir. Bunun nedeni, önceki sorguda “11” değerini eklemiş olmamız ve UNIQUE anahtarı nedeniyle tekrarlanan değeri tekrar eklememize izin vermemesidir.

Bu nedenle, tabloyu kontrol ederken, tablonun ilk INSERT sorgusu tarafından eklenen yalnızca 1 kaydı olduğunu görebiliriz.

>> verilerden * SEÇİN.bakan;

Tersine, INSERT IGNORE yan tümcesini kullanıyorsanız, hatayı tetikleyen yanlış veri satırları gözden kaçacak ve yalnızca doğru olanları girecektir. Aşağıdaki komutta, tabloya tekrarlanan değerler eklemekten kaçınmak ve hatayı gözden kaçırmak için INSERT IGNORE komutunu kullanıyoruz. Gördüğünüz gibi, ilk değerler listesi, önceki sorguda olduğu gibi yinelenen bir “11” değerine sahiptir. İkinci değer listesi benzersiz olsa da, ikinci değerler listesi olan tabloya eklenen 1 kaydı gösterecektir. MySQL ayrıca yalnızca 1 kaydın eklendiğini ve mesajda 1 uyarı oluşturulduğunu belirtir. Daha sonra, INSERT IGNORE yan tümcesini kullanıyorsak, MySQL'in bir uyarı sağladığını varsayabilirsiniz.

Aşağıdaki çıktıdan da görebileceğiniz gibi, bu tabloda sadece iki kaydımız var - yukarıdaki sorguda verilen ve gözden kaçan ilk değerler listesi.

>> verilerden * SEÇİN.bakan;

Sonuç:

INSERT IGNORE'un gerekli tüm örneklerini MySQL Workbench ve MySQL komut satırı istemci kabuğu aracılığıyla yinelenen değerler üzerinde yaptık.

Linux'ta Fare Tıklamalarını ve Tuş Vuruşlarını Teşvik Etmek İçin Xdotool Nasıl Kullanılır?
Xdotool, fare tıklamalarını ve tuş vuruşlarını simüle etmek için ücretsiz ve açık kaynaklı bir komut satırı aracıdır. Bu makale, klavye ve fare girişl...
Linux için En İyi 5 Ergonomik Bilgisayar Faresi Ürünleri
Uzun süreli bilgisayar kullanımı bileğinizde veya parmaklarınızda ağrıya neden olur mu?? Sert eklemlerden muzdarip misiniz ve sürekli ellerinizi sıkma...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...