Masukkan Baris jika Nilai Belum Ada di Postgresl

Insert Row If Values Don T Already Exist Postgresl



Mengetahui dan memanipulasi sistem pengurusan pangkalan data telah membuat kita biasa dengan perubahan mengenai pangkalan data. Yang biasanya melibatkan membuat, memasukkan, mengemas kini dan menghapus fungsi yang diterapkan pada jadual tertentu. Dalam artikel semasa, kita akan melihat bagaimana data dikendalikan dengan kaedah penyisipan. Kita mesti membuat jadual di mana kita mahu penyisipan. Insert statement digunakan untuk penambahan data baru dalam baris jadual. Pernyataan sisipan PostgreSQL merangkumi beberapa peraturan untuk kejayaan pelaksanaan pertanyaan. Pertama kita harus menyebut nama jadual diikuti dengan nama lajur (atribut) di mana kita mahu memasukkan baris. Kedua, kita mesti memasukkan nilai, dipisahkan dengan koma selepas klausa NILAI. Akhirnya, setiap nilai mesti berada dalam urutan yang sama dengan urutan senarai atribut yang disediakan semasa membuat jadual tertentu.

Sintaks

>> MASUKKAN KE DALAMTABLENAME(lajur1,ruangan) NILAI (‘Nilai1’, ‘nilai2’);

Di sini, lajur adalah atribut jadual. Kata kunci NILAI digunakan untuk memasukkan nilai. ‘Nilai’ adalah data jadual yang akan dimasukkan.







Memasukkan fungsi baris dalam shell PostgreSQL (psql)

Setelah berjaya memasang postgresql, kami akan memasukkan nama pangkalan data, nombor port, dan kata laluan. Psql akan dimulakan. Kami kemudian akan melakukan pertanyaan masing-masing.





Contoh 1: Menggunakan INSERT untuk menambahkan rekod baru ke jadual
Mengikuti sintaks, kami akan membuat pertanyaan berikut. Untuk memasukkan baris dalam jadual, kami akan membuat jadual bernama pelanggan. Jadual masing-masing mengandungi 3 lajur. Jenis data lajur tertentu harus disebutkan untuk memasukkan data di lajur itu dan untuk mengelakkan kelebihan. Pertanyaan untuk membuat jadual adalah:





>> buat mejapelanggan(IDint,nama varchar (40), negaravarchar (40));

Setelah membuat jadual, kita sekarang akan memasukkan data dengan memasukkan baris secara manual dalam pertanyaan yang berasingan. Pertama, kami menyebut nama lajur untuk mengekalkan ketepatan data pada lajur tertentu mengenai atribut. Kemudian, nilai akan dimasukkan. Nilai dikod oleh koma tunggal, kerana ia akan dimasukkan tanpa perubahan.



>> masukkan ke dalampelanggan(ID,nama, negara) nilai ('1',‘Alia’, ‘Pakistan’);

Setelah setiap penyisipan berjaya, output akan menjadi 0 1, yang bermaksud bahawa 1 baris dimasukkan pada satu masa. Dalam pertanyaan seperti yang disebutkan sebelumnya, kami telah memasukkan data sebanyak 4 kali. Untuk melihat hasilnya, kami akan menggunakan pertanyaan berikut:

>> pilih*daripelanggan;

Contoh 2: Menggunakan pernyataan INSERT dalam menambahkan beberapa baris dalam satu pertanyaan
Pendekatan yang sama digunakan dalam memasukkan data tetapi tidak memperkenalkan pernyataan sisipan berkali-kali. Kami akan memasukkan data sekaligus dengan menggunakan pertanyaan tertentu; semua nilai satu baris dipisahkan dengan Dengan menggunakan pertanyaan berikut, kita akan mencapai output yang diperlukan

Contoh 3: MASUKKAN beberapa baris dalam satu jadual berdasarkan nombor dalam jadual yang lain
Contoh ini berkaitan dengan penyisipan data dari satu jadual ke jadual yang lain. Pertimbangkan dua jadual, a dan b. Jadual a mempunyai 2 atribut, iaitu nama dan kelas. Dengan menerapkan pertanyaan CREATE, kami akan memperkenalkan jadual. Setelah pembuatan jadual, data akan dimasukkan dengan menggunakan sisipan pertanyaan.

>> buat mejake(nama varchar (30),kelas varchar (40));
>> Masukkan ke dalamkenilai (‘Amna’,1),('bhishma', '2'),(‘Jave’, ’3'),(‘Turun’,4');

Empat nilai dimasukkan ke dalam jadual menggunakan teori melebihi. Kita boleh periksa dengan menggunakan pernyataan terpilih.

Begitu juga, kita akan membuat jadual b, yang mempunyai atribut semua nama dan subjek. 2 pertanyaan yang sama akan digunakan untuk memasukkan dan mengambil rekod dari jadual yang sesuai.

>> buat mejab(nama semua varchar(30), varchar subjek(70));

Ambil rekod dengan memilih teori.

>> pilih*darib;

Untuk memasukkan nilai jadual b dalam jadual, kami akan menggunakan pertanyaan berikut. Pertanyaan ini akan berfungsi sedemikian rupa sehingga semua nama dalam jadual b akan dimasukkan ke dalam jadual ke dengan pengiraan nombor yang menunjukkan bilangan kejadian nombor tertentu pada lajur jadual masing-masing b . b.allnames mewakili fungsi objek untuk menentukan jadual. Fungsi Count (b.allnames) berfungsi untuk mengira jumlah kejadian. Oleh kerana setiap nama berlaku sekaligus, lajur yang dihasilkan akan mempunyai 1 nombor.

>> Masukkan ke dalamke(nama,kelas) pilihb. nama, kiraan(b. nama semua) daribkumpulan olehb. nama samaran;

Contoh 4: MASUKKAN data dalam baris jika tidak ada
Pertanyaan ini digunakan untuk memasukkan baris jika tidak ada. Pertama pertanyaan yang disediakan memeriksa sama ada baris sudah ada atau tidak. Sekiranya sudah ada, maka data tidak akan ditambahkan. Dan jika data tidak hadir berturut-turut, penyisipan baru akan diadakan. Di sini tmp adalah pemboleh ubah sementara yang digunakan untuk menyimpan data untuk beberapa waktu.

>> masukkan ke dalamb(semua nama, subjek) pilih*dari (pilih‘Kinza’sebagaisemua nama, 'islamiat'sebagaisubjek) sebagaitmpdi mana tidak ada ( pilihsemua namadaribdi manasemua nama=‘Sundus’had 1);

Contoh 5: PostgreSQL Upsert Menggunakan Penyataan INSERT
Fungsi ini mempunyai dua jenis:

  • Kemas kini: jika konflik berlaku, jika rekod tersebut sepadan dengan data yang ada dalam jadual, ia dikemas kini dengan data baru.
  • Sekiranya konflik berlaku, jangan buat apa-apa : Jika suatu catatan sesuai dengan data yang ada dalam tabel, catatan tersebut akan melewatkan catatan tersebut, atau jika ada ralat, data tersebut juga akan diabaikan.

Pada mulanya, kami akan membentuk jadual dengan beberapa sampel data.

>> BUAT JADUALtbl2(IDINT PERDANA KUNCI,Nama KARAKTER BERBEZA);

Setelah membuat jadual, kami akan memasukkan data dalam tbl2 dengan menggunakan pertanyaan:

>> MASUKKAN KE DALAMtbl2NILAI (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Sekiranya konflik berlaku, Kemas kini:

>>MASUKKAN KE DALAMtbl2NILAI (8,'Menaiki') HIDUPKONFLIK(ID) LAKUKAN KEMASKINI SET Nama=Dikecualikan.Nama;

Pada mulanya, kami akan memasukkan data menggunakan pertanyaan konflik id 8 dan nama Rida. Pertanyaan yang sama akan digunakan mengikuti id yang sama; nama akan ditukar. Sekarang anda akan melihat bagaimana nama akan ditukar pada id yang sama dalam jadual.

>> MASUKKAN KE DALAMtbl2NILAI (8,'Kerja') HIDUPKONFLIK(ID) LAKUKAN KEMASKINI SET Nama =Dikecualikan.Nama;

Kami mendapati bahawa terdapat konflik pada id 8, jadi baris yang ditentukan dikemas kini.

Sekiranya konflik berlaku, jangan buat apa-apa

>> MASUKKAN KE DALAMtbl2NILAI (9,'Hira') HIDUPKONFLIK(ID) LAKUKAN TIDAK ADA;

Dengan menggunakan pertanyaan ini, baris baru dimasukkan. Selepas itu, kami akan menggunakan jika pertanyaan yang sama untuk melihat konflik yang berlaku.

>>MASUKKAN KE DALAMtbl2NILAI (9,'Hira') HIDUPKONFLIK(ID) LAKUKAN TIDAK ADA;

Menurut gambar di atas, anda akan melihat bahawa setelah pelaksanaan pertanyaan INSERT 0 0 menunjukkan tidak ada data yang dimasukkan.

Kesimpulannya

Kami telah melihat sekilas konsep pemahaman memasukkan baris dalam jadual di mana data tidak ada, atau penyisipan tidak selesai, jika terdapat catatan, untuk mengurangkan kelebihan hubungan pangkalan data.