Memulihkan Nilai Yang Dikemaskini dalam MySQL: Melebihi Kiraan Baris Terjejas
Dalam MySQL, mengubah suai data melalui pertanyaan lazimnya melibatkan pemeriksaan bilangan baris yang terjejas untuk mengukur kejayaan operasi. Walau bagaimanapun, kadangkala ia menjadi perlu untuk mendapatkan semula nilai yang dikemas kini itu sendiri. Pertimbangkan senario berikut:
UPDATE item SET `score`=`score`+1 WHERE `id`=1
Melaksanakan pertanyaan ini mengembalikan kiraan baris yang diubah suai. Tetapi bagaimana jika seseorang itu perlu mengetahui nilai sebenar lajur skor selepas kenaikan?
Pendekatan Tradisional: Pertanyaan Berasingan
Satu penyelesaian yang mudah adalah dengan melaksanakan yang berasingan pertanyaan untuk mendapatkan semula nilai yang dikemas kini. Pendekatan ini mungkin memadai, tetapi ia memperkenalkan perjalanan pergi balik tambahan ke pangkalan data, yang berpotensi memberi kesan kepada prestasi.
Menggunakan Prosedur Tersimpan: Pilihan yang Lebih Cekap
Lebih cekap pendekatan melibatkan memanfaatkan prosedur tersimpan. Prosedur tersimpan menyediakan cara yang mudah untuk merangkum berbilang operasi pangkalan data ke dalam satu unit logik. Dalam konteks mendapatkan semula nilai yang dikemas kini, prosedur tersimpan boleh menggabungkan kemas kini dan memilih operasi dalam panggilan yang sama.
Sebagai contoh, pertimbangkan prosedur tersimpan berikut:
DELIMITER $$ CREATE PROCEDURE increment_score(IN id_in INT) BEGIN UPDATE item SET score = score + 1 WHERE id = id_in; SELECT score AS new_score FROM item WHERE id = id_in; END $$ DELIMITER ;
Prosedur tersimpan ini melakukan kenaikan markah diikuti dengan pemilihan nilai yang dikemas kini.
Menyepadukan dengan PHP
Untuk menggunakan prosedur tersimpan ini dalam PHP, laksanakan kod berikut:
$result = mysql_query("CALL increment_score($id)"); $row = mysql_fetch_array($result); echo $row['new_score'];
Kod ini menggunakan prosedur tersimpan, mendapatkan semula set hasil dan akhirnya mengekstrak nilai yang dikemas kini.
Kesimpulan
Dalam MySQL, mendapatkan semula nilai yang dikemas kini. selepas operasi pengubahsuaian boleh dicapai selain daripada hanya bergantung pada kiraan baris yang terjejas. Prosedur tersimpan menawarkan mekanisme yang berkuasa untuk menggabungkan kemas kini dan memilih operasi, memaksimumkan kecekapan dan memastikan panggilan pangkalan data pada tahap minimum. Dengan memanfaatkan prosedur tersimpan, pembangun boleh mengoptimumkan strategi mendapatkan data mereka, meningkatkan prestasi keseluruhan aplikasi mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Yang Dikemaskini dalam MySQL Selain Hanya Memeriksa Kiraan Baris Terjejas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!