Rumah > Artikel > pangkalan data > Apakah kegunaan untuk kemas kini dalam mysql
Penggunaan untuk kemas kini dalam mysql ialah "pilih * dari jadual di mana...untuk kemas kini"; menggunakan untuk kemas kini boleh menambah kunci eksklusif pada baris semasa pertanyaan apabila operasi transaksi tidak selesai urus niaga boleh membaca tetapi tidak boleh menulis atau mengemas kini.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
1 Senario penggunaan untuk kemas kini
Jika terdapat keselarasan yang tinggi dan data adalah tepat. Dalam senario yang sangat mencabar, anda perlu memahami dan menggunakan untuk kemas kini.
untuk kemas kini ialah menambah kunci eksklusif pada baris apabila membuat pertanyaan Apabila operasi transaksi tidak selesai, transaksi lain boleh membaca tetapi tidak boleh menulis atau mengemas kini.
Sebagai contoh, ia melibatkan wang, inventori, dll. Secara amnya, operasi ini adalah siri yang panjang dan memulakan transaksi. Jika inventori ialah 1 apabila ia pertama kali dibaca, dan proses lain dengan serta-merta mengemas kini inventori kepada 0, dan urus niaga masih belum berakhir, data yang salah akan terus dilaksanakan, dan akan ada masalah. Oleh itu, untuk upate diperlukan untuk mengunci data untuk mengelakkan ralat data semasa konkurensi tinggi.
Ingat satu prinsip: satu kunci, dua pertimbangan, tiga kemas kini
2. Cara menggunakan untuk kemas kini
Postur penggunaan:
select * from table where xxx for update
3 Kunci jadual untuk kemas kini
InnoDB secara lalai kepada kunci peringkat baris Apabila terdapat kunci utama yang dinyatakan dengan jelas, ia adalah kunci peringkat baris. Jika tidak, ia adalah tahap meja.
Contoh: Andaikan makanan meja mempunyai tiga medan: id, nama dan id status ialah kunci utama dan status mempunyai indeks.
Contoh 1: (Nyatakan kunci primer secara eksplisit, dan rekod ini wujud, kunci peringkat baris)
SELECT * FROM foods WHERE id=1 FOR UPDATE; SELECT * FROM foods WHERE id=1 and name=‘码农编程进阶笔记’ FOR UPDATE;
Contoh 2: (Nyatakan kunci/indeks primer secara eksplisit, jika tiada rekod ditemui, tiada kunci )
SELECT * FROM foods WHERE id=-1 FOR UPDATE;
Contoh 3: (Tiada kunci utama/indeks, kunci peringkat jadual)
PILIH * DARI makanan WHERE name='Nota Lanjutan Pengaturcaraan Pengekod' UNTUK KEMASKINI;
Contoh 4: (Kunci primer/indeks tidak jelas, kunci peringkat jadual)
SELECT * FROM foods WHERE id<>‘3’ FOR UPDATE; SELECT * FROM foods WHERE id LIKE ‘3’ FOR UPDATE;
Nota untuk kemas kini
1.untuk kemas kini sahaja Berkenaan dengan InnoDB, dan urus niaga mesti didayakan untuk berkuat kuasa antara mula dan komit.
2. Untuk menguji situasi kunci jadual untuk kemas kini, anda boleh menggunakan Mod Perintah MySQL untuk membuka dua tetingkap untuk ujian.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Apakah kegunaan untuk kemas kini dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!