Bagaimanakah Penguncian Optimis Boleh Dilaksanakan dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-10-26 20:39:30
asal
403 orang telah melayarinya

 How Can Optimistic Locking Be Implemented in MySQL?

Penguncian Optimis dalam MySQL

Walaupun MySQL secara asli tidak menyokong penguncian optimistik, ia boleh dilaksanakan melalui binaan SQL standard dan logik kod .

Tiada Pendekatan Mengunci:

Dalam pendekatan ini, tiada penguncian eksplisit digunakan. Walau bagaimanapun, ketekalan data tidak dipastikan jika berbilang pengguna mengemas kini data yang sama secara serentak.

SELECT data from theTable WHERE iD = @theId;
{code that calculates new values}
UPDATE theTable
SET val1 = @newVal1,
    val2 = @newVal2
WHERE iD = @theId;
Salin selepas log masuk

Pendekatan Penguncian Optimis:

Pendekatan ini termasuk menyemak pengubahsuaian sebelum melakukan kemas kini. Jika pengubahsuaian telah berlaku, biasanya ditentukan oleh versi baris atau semakan kesamaan, kemas kini ditolak.

SELECT iD, val1, val2
FROM theTable
WHERE iD = @theId;
{code that calculates new values}
UPDATE theTable
SET val1 = @newVal1,
    val2 = @newVal2
WHERE iD = @theId
AND val1 = @oldVal1
AND val2 = @oldVal2;
{if AffectedRows == 1 }
    {go on with your other code}
{else}
    {decide what to do since it has gone bad... in your code}
{endif}
Salin selepas log masuk

Penguncian Optimis Versi:

Serupa dengan penguncian optimistik pendekatan, teknik ini menggunakan lajur versi untuk menyemak pengubahsuaian.

SELECT iD, val1, val2, version
FROM theTable
WHERE iD = @theId;
{code that calculates new values}
UPDATE theTable
SET val1 = @newVal1,
    val2 = @newVal2,
    version = version + 1
WHERE iD = @theId
AND version = @oldversion;
{if AffectedRows == 1 }
    {go on with your other code}
{else}
    {decide what to do since it has gone bad... in your code}
{endif}
Salin selepas log masuk

Transaksi dan Tahap Pengasingan:

Transaksi boleh digunakan bersama dengan penguncian optimistik untuk memastikan ketekalan data. Walau bagaimanapun, pilihan tahap pengasingan transaksi boleh menjejaskan keberkesanan penguncian optimistik.

Pengujian dan Pengesahan:

Untuk memastikan penguncian optimistik dilaksanakan dengan betul, adalah disyorkan untuk lakukan ujian dan pengesahan menyeluruh menggunakan senario dan tahap pengasingan yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Penguncian Optimis Boleh Dilaksanakan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!