Postgresl'de Değerler Zaten Mevcut Değilse Satır Ekle

Insert Row If Values Don T Already Exist Postgresl



Veritabanı yönetim sistemlerini bilmek ve manipüle etmek, bizi veritabanları hakkındaki değişikliklere aşina hale getirdi. Bu genellikle belirli tablolara uygulanan işlevlerin oluşturulmasını, eklenmesini, güncellenmesini ve silinmesini içerir. Bu yazımızda, verinin ekleme yöntemiyle nasıl yönetildiğini göreceğiz. Eklemek istediğimiz bir tablo oluşturmalıyız. Tablo satırlarına yeni verilerin eklenmesi için Insert deyimi kullanılır. PostgreSQL inserts ifadesi, bir sorgunun başarılı bir şekilde yürütülmesi için bazı kuralları kapsar. Öncelikle tablo adını ve ardından satır eklemek istediğimiz sütun adlarını (nitelikler) belirtmeliyiz. İkinci olarak, DEĞER yan tümcesinden sonra virgülle ayırarak değerleri girmeliyiz. Son olarak, her değer, belirli bir tablo oluşturulurken sağlanan öznitelik listelerinin sırası ile aynı sırada olmalıdır.

Sözdizimi

>> SOKMAK İÇİNETABLO İSMİ(sütun1,kolon) DEĞERLER ('değer1', 'değer2');

Burada bir sütun, tablonun nitelikleridir. Değerleri girmek için VALUE anahtar kelimesi kullanılır. 'Değer' girilecek tabloların verileridir.







PostgreSQL kabuğuna (psql) satır işlevleri ekleme

Başarılı postgresql kurulumundan sonra veritabanı adını, port numarasını ve şifreyi gireceğiz. Psql başlatılacaktır. Daha sonra sırasıyla sorguları gerçekleştireceğiz.





Örnek 1: Tablolara yeni kayıtlar eklemek için INSERT'i kullanma
Sözdizimini takip ederek aşağıdaki sorguyu oluşturacağız. Tabloya satır eklemek için müşteri adında bir tablo oluşturacağız. İlgili tablo 3 sütun içerir. Belirli sütunların veri tipi, o sütuna veri girmek ve fazlalıktan kaçınmak için belirtilmelidir. Tablo oluşturmak için sorgu:





>> oluşturmak tablomüşteri(İDint,isim varchar (40), ülkevarchar (40));

Tabloyu oluşturduktan sonra artık ayrı sorgularda manuel olarak satırlar ekleyerek veri gireceğiz. İlk olarak, özniteliklerle ilgili belirli sütunlarda verilerin doğruluğunu korumak için sütun adından bahsederiz. Ardından değerler girilecektir. Değerler, herhangi bir değişiklik yapılmadan eklenecekleri için tek virgülle kodlanmıştır.



>> sokmak içinemüşteri(İD,isim, ülke) değerler ('1','Alia', 'Pakistan');

Her başarılı eklemeden sonra çıktı 0 1 olacaktır, bu da her seferinde 1 satır eklendiği anlamına gelir. Daha önce de belirtildiği gibi sorguda 4 kez veri ekledik. Sonuçları görüntülemek için aşağıdaki sorguyu kullanacağız:

>> Seçme*itibarenmüşteri;

Örnek 2: Tek bir sorguda birden çok satır eklemek için INSERT ifadesini kullanma
Aynı yaklaşım, veri eklemede kullanılır, ancak birçok kez ekleme ifadeleri sunmaz. Belirli bir sorgu kullanarak verileri tek seferde gireceğiz; bir satırın tüm değerleri aşağıdaki sorguyu kullanarak ayrılır, gerekli çıktıyı elde ederiz.

Örnek 3: Başka bir tablodaki sayılara dayalı olarak bir tabloya birden çok satır EKLE
Bu örnek, bir tablodan diğerine veri eklenmesiyle ilgilidir. İki tablo düşünün, a ve b. Tablo a'nın 2 özelliği vardır, yani isim ve sınıf. Bir CREATE sorgusu uygulayarak bir tablo tanıtacağız. Tablo oluşturulduktan sonra, bir ekleme sorgusu kullanılarak veriler girilecektir.

>> oluşturmak tabloile(isim varchar (30),sınıf varchar (40));
>> Sokmak içineiledeğerler ('Am',1),('bişma','2'),('çengel','3'),('Aşağı',4');

Aşma teorisi kullanılarak tabloya dört değer eklenir. Select deyimlerini kullanarak kontrol edebiliriz.

Benzer şekilde, tüm isimlerin ve konuların niteliklerine sahip olan b tablosunu oluşturacağız. Aynı 2 sorgu, ilgili tablodan kayıt eklemek ve almak için uygulanacaktır.

>> oluşturmak tabloB(tüm isimler varchar(30), konu varchar(70));

Seçme teorisi ile kaydı getir.

>> Seçme*itibarenB;

Tablo değerlerini eklemek için B tabloda, aşağıdaki sorguyu kullanacağız. Bu sorgu, tablodaki tüm adların B tabloya eklenecek ile Tablonun ilgili sütununda belirli bir sayının oluşum sayısını gösteren sayıların sayılması ile B . b.allnames, tabloyu belirtmek için nesne işlevini temsil eder. Say (b.allnames) işlevi, toplam oluşumu saymak için çalışır. Her isim aynı anda geçtiği için sonuç sütununda 1 numara olacaktır.

>> Sokmak içineile(isim,sınıf) Seçmeb.allnames, sayı(b.tüm adlar) itibarenBgrup tarafındanb.allnames;

Örnek 4: Mevcut değilse satırlara veri INSERT
Bu sorgu, mevcut değilse satır girmek için kullanılır. Öncelikle sağlanan sorgu, satırın zaten mevcut olup olmadığını kontrol eder. Zaten varsa, veriler eklenmez. Ve veriler bir satırda mevcut değilse, yeni ekleme yapılacaktır. Burada tmp, verileri bir süreliğine depolamak için kullanılan geçici bir değişkendir.

>> sokmak içineB(tüm isimler, konu) Seçme*itibaren (Seçme'Kinza'olaraktüm isimler, 'islamiat'olarakders) olaraktmpnerede Olumsuz var ( Seçmetüm isimleritibarenBneredetüm isimler='Sundu'sınır 1);

Örnek 5: INSERT İfadesini Kullanan PostgreSQL Upsert
Bu işlevin iki çeşidi vardır:

  • Güncelleme: bir çakışma olursa, kayıt, tablodaki mevcut verilerle eşleşirse, yeni verilerle güncellenir.
  • Bir çatışma olursa, hiçbir şey yapmayın : Bir kayıt tablodaki mevcut verilerle eşleşirse kaydı atlar veya bir hata tespit edilirse de yoksayılır.

İlk olarak, bazı örnek veriler içeren bir tablo oluşturacağız.

>> OLUŞTURMAK TABLOtbl2(İDINT ÖNCELİK ANAHTAR,İsim KARAKTER DEĞİŞEN);

Tablo oluşturduktan sonra sorguyu kullanarak tbl2'ye veri ekleyeceğiz:

>> SOKMAK İÇİNEtbl2DEĞERLER (1,'uzma'),(2,'abdul'),(3,'hamna'),(4,'fatma'),(5,'şiza'),(6,'javeria');

Bir çakışma meydana gelirse, Güncelle:

>>SOKMAK İÇİNEtbl2DEĞERLER (8,'Sürmek') ÜZERİNDEÇATIŞMA(İD) YAPMAK GÜNCELLEME AYARLAMAK İsim=Hariç tutuldu.İsim;

İlk olarak id 8 ve Rida isminin çakışma sorgusunu kullanarak veri gireceğiz. Aynı kimlikten sonra aynı sorgu kullanılacaktır; adı değiştirilecektir. Şimdi tabloda aynı id üzerinde isimlerin nasıl değiştirileceğini göreceksiniz.

>> SOKMAK İÇİNEtbl2DEĞERLER (8,'Çalışmak') ÜZERİNDEÇATIŞMA(İD) YAPMAK GÜNCELLEME AYARLAMAK İsim =Hariç tutuldu.İsim;

Kimlik 8'de bir çakışma olduğunu tespit ettik, bu nedenle belirtilen satır güncellendi.

Bir çatışma olursa, hiçbir şey yapmayın

>> SOKMAK İÇİNEtbl2DEĞERLER (9,'Hira') ÜZERİNDEÇATIŞMA(İD) YAPMAK HİÇBİR ŞEY;

Bu sorgu kullanılarak yeni bir satır eklenir. Bundan sonra oluşan çakışmayı görmek için if aynı sorguyu kullanacağız.

>>SOKMAK İÇİNEtbl2DEĞERLER (9,'Hira') ÜZERİNDEÇATIŞMA(İD) YAPMAK HİÇBİR ŞEY;

Yukarıdaki resme göre, INSERT 0 0 sorgusunun yürütülmesinden sonra herhangi bir veri girilmediğini göreceksiniz.

Çözüm

Veritabanı ilişkilerinde fazlalığı azaltmak için, verilerin bulunmadığı veya herhangi bir kayıt bulunursa eklemenin tamamlanmadığı tablolara satır ekleme kavramına bir göz attık.