Apakah yang dilakukan INSERT ON DUPLICATE KEY UPDATE dalam MySQL?

Apakah Yang Dilakukan Insert On Duplicate Key Update Dalam Mysql



Semasa bekerja dengan pangkalan data MySQL, pengguna kadangkala menghadapi ralat pelanggaran kunci pendua apabila cuba memasukkan rekod baharu ke dalam jadual. Ralat ini berlaku apabila baris dengan kunci utama atau kunci unik yang sama sudah wujud. Walau bagaimanapun, isu ini boleh diatasi dengan mengemas kini rekod sedia ada dengan nilai baharu. Dalam kes sedemikian, membolehkan ' INSERT PADA KEMASKINI KUNCI DUA ” ciri akan menyelesaikan masalah ini dengan berkesan.

Siaran ini akan menunjukkan apa itu 'INSERT ON DUPLICATE KEY UPDATE' dan cara ia berfungsi dalam MySQL.







Apakah yang dilakukan INSERT ON DUPLICATE KEY UPDATE dalam MySQL?

Dalam MySQL, INSERT PADA KEMASKINI KUNCI DUA ialah ciri lanjutan bagi pernyataan INSERT yang menggabungkan dua fungsi ke dalam satu operasi. Sebagai contoh, ia memasukkan rekod ke dalam jadual tertentu jika rekod yang diberikan belum wujud. Walau bagaimanapun, jika rekod yang dikehendaki sudah wujud, maka ia akan mengemas kini rekod sedia ada dengan nilai baharu.



Untuk mendayakan ciri INSERT ON DUPLICATE KEY UPDATE, pengguna mesti mengikut sintaks yang diberikan di bawah:



MASUKKAN KE DALAM [ nama_jadual ] ( [ col_1 ] , [ col_2 ] , ... )
NILAI ( [ val_1 ] , [ val_2 ] , ... )
PADA KEMASKINI KUNCI DUPLICATE [ col_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





Tentukan nama jadual, nama lajur dan nilai pilihan anda sebagai ganti nama_jadual, col_1, col_2, … dan val_1, val_2, …, dsb.

Contoh: Bagaimana Menggunakan Ciri INSERT ON DUPLICATE KEY UPDATE dalam MySQL?



Mula-mula, sambungkan ke pangkalan data MySQL dengan keistimewaan yang sesuai dan kemudian laksanakan arahan di bawah untuk mengambil data jadual 'linuxhint_author':

PILIH * DARI linuxhint_author;

Arahan pilih mendapatkan semula semua rekod jadual 'linuxhint_author':

Sekarang jalankan arahan SQL berikut untuk memasukkan atau mengemas kini rekod tertentu dalam jadual 'linuxhint_author', dengan ciri 'KEMASKINI KUNCI DUA' didayakan:

MASUKKAN KE DALAM linuxhint_author ( ID , nama, umur, pengarangRank, e-mel )
NILAI ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
PADA KEMASKINI KUNCI DUPLICATE
nama = NILAI ( nama ) ,
umur = NILAI ( umur ) ,
authorRank = NILAI ( authorRank ) ,
e-mel = NILAI ( emel ) ;

Oleh kerana rekod yang ditentukan belum wujud dalam jadual 'linuxhint_author', ia akan berjaya dimasukkan ke dalam jadual yang dipilih:

Mari masukkan rekod pendua dan lihat bagaimana ' PADA KEMASKINI KUNCI DUPLICATE ” kerja ciri dalam MySQL:

MASUKKAN KE DALAM linuxhint_author ( ID , nama, umur, pengarangRank, e-mel )
NILAI ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
PADA KEMASKINI KUNCI DUPLICATE
nama = NILAI ( nama ) ,
umur = NILAI ( umur ) ,
authorRank = NILAI ( authorRank ) ,
e-mel = NILAI ( emel ) ;

Daripada coretan di bawah, dapat dilihat dengan jelas bahawa rekod sedia ada berjaya dikemas kini dengan nilai baharu:

Ciri 'INSERT ON DUPLICATE KEY' juga boleh digunakan pada lajur tertentu dan bukannya keseluruhan rekod:

MASUKKAN KE DALAM linuxhint_author ( ID , authorRank )
NILAI ( 3 , 2 )
PADA KEMASKINI KUNCI DUPLICATE authorRank = NILAI ( authorRank ) ;

Dalam kod di atas, 'authorRank' pengarang dengan ID '3' sedang dikemas kini kepada nilai baharu '2':

Beginilah cara ciri “INSERT ON DUPLICATE KEY UPDATE” berfungsi dalam MySQL.

Kesimpulan

Dalam MySQL, INSERT PADA KEMASKINI KUNCI DUA ialah ciri lanjutan yang membolehkan kami menggabungkan fungsi memasukkan baris baharu dan mengemas kini/mengubah suai baris yang sedia ada dalam satu operasi. Ciri ini membantu pengguna mengelakkan ralat 'pelanggaran kunci pendua' apabila cuba memasukkan baris baharu ke dalam jadual tertentu. Siaran ini telah menerangkan apa itu 'INSERT ON DUPLICATE KEY UPDATE' dan cara ia berfungsi dalam MySQL.