MySQL – Cara Menyisipkan Baris Baru Hanya jika Data Tidak Ada

Mysql Cara Menyisipkan Baris Baru Hanya Jika Data Tidak Ada



MySQL adalah RDBMS sumber terbuka yang terkenal untuk menyimpan data dalam basis data. Memasukkan data ke dalam tabel database Anda adalah tugas umum. Terkadang, pengguna tidak ingin memasukkan data duplikat untuk menghilangkan redundansi. MySQL memungkinkan pengguna untuk memasukkan data hanya jika data serupa belum ada.

Posting ini akan membahas penyisipan baris baru hanya jika data belum ada di tabel MySQL. Sebelum memulai dengan posting ini, pastikan Anda masuk ke server lokal MySQL Anda dan telah memilih database tempat Anda ingin bekerja.

Sisipkan Baris baru Hanya jika Data tidak Ada Menggunakan Pernyataan 'INSERT IGNORE'.

Nah, jawaban atas pertanyaan di judul cukup sederhana dan lugas. Cukup gunakan “ MENYISIPKAN ” kata kunci bersama dengan “ MENGABAIKAN Kata kunci. Ini akan memastikan bahwa data baru atau kueri penyisipan hanya dijalankan ketika tidak ada entri data sebelumnya yang ditemukan di MySQL. Untuk mendapatkan gambaran singkat tentang ini, lihat sintaks berikut:







MENYISIPKAN MENGABAIKAN KE DALAM [ meja - nama ] ( [ kolom1 - nama ] , [ kolom2 - nama ] , [ kolom3 - nama ] ) NILAI ( [ nilai1 ] , [ nilai2 ] , [ nilai3 ] ) ;

Mari kita lihat contoh jika pengguna ingin memasukkan nilai baris “ 1 ”, “ Yohanes ' Dan ' Kelinci betina ' dalam ' Pelanggan ” tabel untuk kolom “ Pengenal ,” “ Nama depan ' Dan ' Nama keluarga ” masing-masing. Jalankan kueri ini untuk memasukkan nilai-nilai ini jika ada jika tidak ada baris yang memiliki nilai-nilai ini:



PILIH * DARI Pelanggan;
MENYISIPKAN MENGABAIKAN KE DALAM Pelanggan ( Pengenal , Nama depan , Nama keluarga ) NILAI ( 1 , 'Yohanes' , 'Kelinci betina' ) ;

Keluarannya berisi dua tabel yang menampilkan data tabel sebelum dan sesudah mengeksekusi kueri. Anda dapat melihat tidak ada yang berubah dalam tabel karena baris tersebut sudah ada sehingga MySQL berhasil mengabaikan proses penyisipan tanpa menampilkan kesalahan:







Sisipkan Baris baru Hanya jika Data tidak Ada Menggunakan Klausa “WHERE NOT EXISTS”.

Di MySQL, ' DI MANA TIDAK ADA ” klausa mencegah penyisipan baris jika sudah ada di tabel saat digunakan di ' MASUKKAN KE DALAM ” pernyataan dengan subquery untuk mendefinisikan suatu kondisi. Ketika klausa ini digunakan dengan subquery “ (PILIH * DARI [nama-tabel] [nama-kolom]=[ekspresi]); ” memeriksa apakah ada baris dalam tabel yang memenuhi kondisi. Jika ada baris, ' DI MANA TIDAK ADA ” klausa akan mengembalikan nilai yang salah, dan “ PILIH ” pernyataan tidak akan mengembalikan baris apa pun. Akibatnya, baris tersebut tidak akan dimasukkan ke dalam tabel. Sintaks disediakan di bawah ini:

MENYISIPKAN KE DALAM [ meja - nama ] ( [ kolom1 - nama ] , [ kolom2 - nama ] , [ kolom3 - nama ] )
PILIH [ nilai1 ] , [ nilai2 ] , [ nilai3 ]
DI MANA BUKAN ADA ( PILIH * DARI [ meja - nama ] [ kolom - nama ] = [ ekspresi ] ) ;

Mari kita lihat contoh jika pengguna ingin menyisipkan baris pada tabel karyawan yang berisi nilai “ 1 ”, “ Amerika ' Dan ' Henriot ” di kolom “ pengenal ”, “ Nama perusahaan ' Dan ' Nama Kontak ” masing-masing. Tetapi hanya jika baris dengan id “ 1 ” tidak ditemukan di tabel atau tidak ada. Dalam kasus khusus itu, kueri akan menjadi:



PILIH * DARI karyawan;

MENYISIPKAN KE DALAM karyawan ( pengenal , Nama perusahaan , Nama Kontak )
PILIH 1 , 'Amerika' , 'Henriot'
DI MANA BUKAN ADA ( PILIH * DARI karyawan DI MANA pengenal = 1 ) ;

Keluaran menampilkan baris baru yang tidak disisipkan sebagai baris dengan “ pengenal ' sama dengan ' 1 ” sudah ada.

Sisipkan Baris Baru Hanya jika Data tidak Ada Menggunakan Klausa “ON DUPLICATE KEY UPDATE”.

Nah, cara lain adalah dengan menggunakan “ PADA PEMBARUAN KUNCI GANDA ” klausa di MySQL. Karena klausa ini akan digunakan dengan kueri 'INSERT INTO' yang membentuk eksekusi 'if-else'. Artinya, data di dalam tabel hanya akan diperbarui jika unik. Jika tidak, tidak ada perubahan yang akan terjadi. Sintaks umum untuk ini adalah sebagai berikut:

MENYISIPKAN KE DALAM [ meja - nama ] ( [ kolom1 - nama ] , [ kolom2 - nama ] , [ kolom3 - nama ] ) NILAI ( [ nilai1 ] , [ nilai2 ] , [ nilai3 ] )
PADA DUPLIKAT KUNCI MEMPERBARUI [ kolom1 - nama ] = [ kolom1 - nama ] ;

Mari kita lihat contoh, untuk menyisipkan nilai di “ 2 ”, “ Pascale ”, “ Nixon ”, “ London ”, “ Inggris ' Dan “(171) 555-7788 ' di meja ' Pelanggan ” untuk kolom “ Pengenal ”, “ Nama depan ”, “ Nama keluarga ”, “ kota ”, “ negara ' Dan ' telepon ” masing-masing. Jika baris belum ada, maka akan disisipkan. Jika tidak, itu akan memperbarui nilai di mana ' id=id ” kondisi terpenuhi. Jalankan kueri ini:

PILIH * DARI Pelanggan ;
MENYISIPKAN KE DALAM Pelanggan ( Pengenal , Nama depan , Nama keluarga , kota , negara , telepon )
NILAI ( 2 , 'Pascale' , 'Nixon' , 'London' , 'Inggris' , '(171) 555-7788' )
PADA DUPLIKAT KUNCI MEMPERBARUI Pengenal = Pengenal;

Ini adalah tabel sebelum menjalankan kueri, Anda dapat melihat “ Pengenal ' sama dengan ' 2 ' tidak ada:

Setelah menjalankan kueri, kueri ini akan menyisipkan baris baru ke dalam tabel:

Anda telah berhasil menyisipkan baris baru, karena data tidak ada sebelum menjalankan kueri.

Kesimpulan

Di MySQL, sisipkan baris baru hanya jika data belum ada dengan menggunakan tombol “ MASUKKAN ABAIKAN pernyataan ” atau “ DI MANA TIDAK ADA ' klausul dalam ' MASUKKAN KE DALAM ' penyataan. Cara lain untuk melakukan ini adalah menggunakan ' PADA PEMBARUAN KUNCI GANDA ' klausul dalam ' MASUKKAN KE DALAM ” pernyataan untuk memperbarui jika baris sudah ada. Jika tidak, tambahkan baris baru. Posting tersebut membahas cara menyisipkan baris baru hanya jika data tidak ada.