MySQL – Cara Memasukkan Baris Baharu Hanya jika Data Tidak Wujud

Mysql Cara Memasukkan Baris Baharu Hanya Jika Data Tidak Wujud



MySQL ialah RDBMS sumber terbuka yang terkenal untuk menyimpan data dalam pangkalan data. Memasukkan data ke dalam jadual pangkalan data anda adalah tugas biasa. Kadangkala, pengguna tidak mahu memasukkan data pendua untuk menghapuskan lebihan. MySQL membenarkan pengguna memasukkan data hanya jika data serupa belum wujud.

Siaran ini akan membincangkan memasukkan baris baharu hanya jika data belum wujud dalam jadual MySQL. Sebelum memulakan siaran ini, pastikan anda log masuk ke pelayan tempatan MySQL anda dan telah memilih pangkalan data di mana anda ingin bekerja.

Masukkan Baris baharu Hanya jika Data tidak Wujud Menggunakan Pernyataan “INSERT IGNORE”.

Nah, jawapan kepada soalan dalam tajuk agak mudah dan mudah. Hanya gunakan ' INSERT ” kata kunci bersama dengan “ ABAI ” Kata kunci. Ini akan memastikan bahawa data baharu atau pertanyaan sisipan hanya dilaksanakan apabila tiada kemasukan data sebelumnya ditemui dalam MySQL. Untuk mendapatkan gambaran ringkas tentang perkara ini, lihat sintaks berikut:







INSERT ABAI KE DALAM [ meja - nama ] ( [ lajur1 - nama ] , [ lajur2 - nama ] , [ lajur3 - nama ] ) NILAI ( [ nilai1 ] , [ nilai2 ] , [ nilai3 ] ) ;

Mari lihat contoh jika pengguna ingin memasukkan nilai baris ' 1 ”, “ John ” dan “ Doe ' di dalam ' Pelanggan ” jadual untuk lajur “ ID ,” “ Nama pertama ” dan “ Nama terakhir ” masing-masing. Jalankan pertanyaan ini untuk memasukkan nilai ini jika ada jika tiada baris yang mempunyai nilai ini sudah wujud:



PILIH * DARI Pelanggan;
INSERT ABAI KE DALAM Pelanggan ( ID , Nama pertama , Nama terakhir ) NILAI ( 1 , 'John' , 'Doe' ) ;

Output mengandungi dua jadual yang memaparkan data jadual sebelum dan selepas melaksanakan pertanyaan. Anda dapat melihat tiada apa-apa yang berubah dalam jadual kerana baris telah wujud jadi MySQL telah berjaya mengabaikan proses penyisipan tanpa memaparkan ralat:







Masukkan Baris baharu Hanya jika Data tidak Wujud Menggunakan Klausa “WHERE NOT EXISTS”.

Dalam MySQL, ' DI MANA TIDAK WUJUD klausa ” menghalang penyisipan baris jika ia sudah wujud dalam jadual apabila ia digunakan dalam “ MASUKKAN KE DALAM ” pernyataan dengan subkueri untuk menentukan keadaan. Apabila klausa ini digunakan dengan subkueri “ (PILIH * DARI [nama jadual] [nama-lajur]=[ungkapan]); ” menyemak sama ada baris wujud dalam jadual yang memenuhi syarat. Jika satu baris wujud, ' MANA TIDAK WUJUD klausa ' akan mengembalikan nilai palsu, dan ' PILIH ” pernyataan tidak akan mengembalikan sebarang baris. Akibatnya, baris tidak akan dimasukkan ke dalam jadual. Sintaks disediakan di bawah:

INSERT KE DALAM [ meja - nama ] ( [ lajur1 - nama ] , [ lajur2 - nama ] , [ lajur3 - nama ] )
PILIH [ nilai1 ] , [ nilai2 ] , [ nilai3 ]
DI MANA TIDAK WUJUD ( PILIH * DARI [ meja - nama ] [ kolum - nama ] = [ ungkapan ] ) ;

Mari lihat contoh jika pengguna ingin memasukkan baris dalam jadual pekerja yang mengandungi nilai ' 1 ”, “ orang amerika ” dan “ Henriot ” dalam lajur “ ID ”, “ Nama syarikat ” dan “ Nama Kenalan ” masing-masing. Tetapi hanya jika baris dengan id ' 1 ” tidak terdapat dalam jadual atau ia tidak wujud. Dalam kes tertentu, pertanyaan akan menjadi:



PILIH * DARI pekerja;

INSERT KE DALAM pekerja ( ID , Nama syarikat , Nama Kenalan )
PILIH 1 , 'Amerika' , 'Henriot'
DI MANA TIDAK WUJUD ( PILIH * DARI pekerja DI MANA ID = 1 ) ;

Output memaparkan baris baharu yang tidak dimasukkan sebagai baris dengan “ ID ' sama dengan ' 1 ” sudah wujud.

Sisipkan Baris Baharu Hanya jika Data tidak Wujud Menggunakan Klausa 'KEMASKINI KUNCI PENDUA'

Nah, cara lain ialah menggunakan ' PADA KEMASKINI KUNCI DUPLICATE ” klausa dalam MySQL. Memandangkan klausa ini akan digunakan dengan pertanyaan 'INSERT INTO' yang membentuk pelaksanaan 'if-else'. Jadi ini bermakna bahawa data di dalam jadual hanya akan dikemas kini jika ia unik. Jika tidak, tiada perubahan akan berlaku. Sintaks umum untuk ini adalah seperti berikut:

INSERT KE DALAM [ meja - nama ] ( [ lajur1 - nama ] , [ lajur2 - nama ] , [ lajur3 - nama ] ) NILAI ( [ nilai1 ] , [ nilai2 ] , [ nilai3 ] )
HIDUP PENDULIK KUNCI KEMASKINI [ lajur1 - nama ] = [ lajur1 - nama ] ;

Mari lihat contoh, untuk memasukkan nilai dalam ' 2 ”, “ Pascale ”, “ Nixon ”, “ London ”, “ UK ” dan “(171) 555-7788 'dalam jadual' Pelanggan ” untuk lajur “ ID ”, “ Nama pertama ”, “ Nama terakhir ”, “ bandar ”, “ negara ” dan “ telefon ” masing-masing. Jika baris itu belum wujud, ia akan dimasukkan. Jika tidak, ia akan mengemas kini nilai di mana ' Id=Id ” syarat memenuhi. Jalankan pertanyaan ini:

PILIH * DARI Pelanggan ;
INSERT KE DALAM Pelanggan ( ID , Nama pertama , Nama terakhir , bandar , negara , telefon )
NILAI ( 2 , 'Pascale' , 'Nixon' , 'London' , 'UK' , '(171) 555-7788' )
HIDUP DUPLICATE KUNCI KEMASKINI ID = ID;

Ini ialah jadual sebelum menjalankan pertanyaan, anda boleh melihat “ ID ' sama dengan ' 2 ' tidak wujud:

Selepas menjalankan pertanyaan, pertanyaan ini akan memasukkan baris baharu dalam jadual:

Anda telah berjaya memasukkan baris baharu, kerana data tidak wujud sebelum menjalankan pertanyaan.

Kesimpulan

Dalam MySQL, masukkan baris baru hanya jika data belum wujud dengan menggunakan ' INSERT ABAIKAN ” pernyataan atau “ MANA TIDAK WUJUD ' klausa dalam ' MASUKKAN KE DALAM ” kenyataan. Cara lain untuk melakukan ini ialah menggunakan ' PADA KEMASKINI KUNCI DUPLICATE ' klausa dalam ' MASUKKAN KE DALAM ” kenyataan untuk mengemas kini jika baris sudah wujud. Jika tidak, tambahkan baris baharu. Siaran itu membincangkan cara memasukkan baris baharu hanya jika data tidak wujud.