mysql untuk prosedur tersimpan gelung

WBOY
Lepaskan: 2023-05-12 11:08:07
asal
2868 orang telah melayarinya

MySQL ialah sistem pengurusan pangkalan data hubungan yang sangat popular yang menyokong ciri lanjutan seperti prosedur tersimpan, fungsi dan pencetus. Prosedur tersimpan ialah ciri pengaturcaraan lanjutan dalam MySQL yang boleh melakukan satu siri operasi pada bahagian pelayan dan boleh menggunakan pernyataan gelung untuk melaksanakan kawalan logik yang kompleks. Dalam artikel ini, kami akan memperkenalkan cara menggunakan gelung for dalam MySQL untuk menulis prosedur tersimpan.

1. Pengenalan kepada prosedur tersimpan

Prosedur tersimpan ialah satu set pernyataan SQL yang telah ditetapkan yang disimpan dan diuruskan dalam pangkalan data dan boleh dipanggil dan dilaksanakan apabila diperlukan. Prosedur tersimpan boleh dipanggil beberapa kali, boleh mengambil parameter dan boleh mengembalikan satu atau lebih set hasil. Oleh kerana prosedur tersimpan dilaksanakan pada pelayan pangkalan data, ia lebih pantas daripada program klien dan boleh mengurangkan overhed penghantaran rangkaian. Prosedur tersimpan biasanya digunakan untuk operasi data yang kompleks, seperti pembersihan data, ETL, dsb.

2. Penggunaan gelung for

Gelung for ialah pernyataan gelung biasa, yang boleh melakukan beberapa operasi gelung, serupa dengan pernyataan for dalam bahasa C. Untuk penyataan gelung juga boleh digunakan dalam MySQL. Sintaks penyataan gelung for adalah seperti berikut:

DECLARE variable_name datatype [DEFAULT value];

FOR loop_counter IN [REVERSE] lower_bound..upper_bound
DO
   statements;
END FOR;
Salin selepas log masuk

Antaranya, variable_name mewakili nama pembolehubah, datatype mewakili jenis data pembolehubah, dan [DEFAULT value] mewakili nilai lalai pembolehubah (pilihan). lower_bound dan upper_bound mewakili nilai permulaan dan akhir gelung, dan loop_counter ialah pembilang gelung, yang dinaikkan atau dikurangkan setiap kali gelung.

3. Contoh prosedur tersimpan untuk gelung

Berikut ialah contoh prosedur tersimpan menggunakan gelung for Prosedur tersimpan ini menanyakan data daripada satu jadual dan menyimpannya dalam jadual lain. Ia menggunakan Gelung for melaksanakan operasi membaca baris data demi baris dan memasukkannya ke dalam jadual sasaran.

DELIMITER //

CREATE PROCEDURE transfer_data()
BEGIN

 DECLARE i INT DEFAULT 0;
 DECLARE count INT DEFAULT 0;
 
 SELECT COUNT(*) FROM source_table INTO count;
 
 FOR i IN 1..count DO
 
   INSERT INTO target_table 
   SELECT * FROM source_table 
   WHERE id = i;
   
 END FOR;
 
END //

DELIMITER ;
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula mengisytiharkan dua pembolehubah i dan kiraan, dengan i ialah pembilang gelung dan kiraan menyimpan bilangan rekod dalam jadual sumber. Kemudian gunakan pernyataan SELECT COUNT(*) untuk menanyakan bilangan rekod dalam jadual sumber dan menyimpan keputusan dalam pembolehubah kiraan. Seterusnya, dalam gelung for, gunakan pernyataan INSERT INTO untuk memasukkan setiap baris data ke dalam jadual sasaran. Antaranya, pernyataan WHERE id = i digunakan dalam setiap gelung untuk menanyakan baris ke-i data dalam jadual sumber dan memasukkannya ke dalam jadual sasaran.

4. Ringkasan

Dalam MySQL, anda boleh menggunakan prosedur tersimpan untuk melaksanakan operasi data yang kompleks, seperti pembersihan data, ETL, dsb. Gelung for ialah struktur gelung yang penting dalam melaksanakan prosedur tersimpan Ia boleh melaksanakan kawalan logik yang kompleks dengan mudah. Apabila menulis prosedur tersimpan, anda harus memberi perhatian kepada julat nilai mula dan nilai akhir gelung, serta nilai awal dan kaedah kenaikan pembilang gelung.

Atas ialah kandungan terperinci mysql untuk prosedur tersimpan gelung. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan