Rumah >pangkalan data >tutorial mysql >Buat prosedur tersimpan mysql

Buat prosedur tersimpan mysql

王林
王林asal
2023-05-08 21:08:064173semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka popular yang cemerlang dalam mengendalikan sejumlah besar data. Prosedur tersimpan ialah blok kod boleh guna semula yang berinteraksi dengan jadual data dan boleh dipanggil dalam pertanyaan.

Artikel ini akan memperkenalkan cara membuat prosedur tersimpan, dan cara memanggil dan menggunakannya dalam MySQL.

1. Buat prosedur tersimpan

Dalam MySQL, mencipta prosedur tersimpan biasanya memerlukan langkah berikut:

1.

2. Jalankan arahan CREATE PROCEDURE untuk mentakrifkan prosedur yang disimpan.

3. Tentukan logik dalam prosedur tersimpan.

Berikut ialah contoh prosedur tersimpan:

DELIMITER //
 
CREATE PROCEDURE getUsers()
BEGIN
    SELECT * FROM users;
END //
 
DELIMITER ;

Dalam contoh di atas, kami telah menentukan prosedur tersimpan yang dipanggil getUsers yang akan mengembalikan semua rekod dalam jadual pengguna.

Di sini kami menggunakan perintah DELIMITER khas yang memberitahu MySQL cara memisahkan pertanyaan SQL daripada prosedur tersimpan.

Seterusnya, kami menggunakan arahan CREATE PROCEDURE untuk mentakrifkan prosedur yang disimpan. Kami menentukan nama prosedur yang disimpan, parameter masuk, logik, dan hasil output.

Perhatikan bahawa kami menggunakan perintah BEGIN dan END dalam prosedur tersimpan untuk meletakkan logik dalam blok kod.

Akhir sekali, kami menggunakan perintah DELIMITER untuk menentukan pembatas baharu untuk pertanyaan SQL, yang secara lalai ialah koma bertitik (;). Ini dilakukan untuk mengelakkan ralat sintaks yang disebabkan oleh penggunaan titik bertitik dalam prosedur tersimpan.

2. Panggil prosedur tersimpan

Setelah anda mencipta prosedur tersimpan, anda boleh merujuknya dalam pertanyaan sama seperti memanggil fungsi. Contohnya:

CALL getUsers();

Selepas memanggil prosedur tersimpan, ia akan melaksanakan logik yang ditakrifkan di tengah dan mengembalikan hasilnya.

3. Lulus parameter

Prosedur tersimpan boleh menggunakan parameter masuk untuk melaksanakan logik yang berbeza. Berikut ialah contoh:

DELIMITER //
 
CREATE PROCEDURE getUserById(IN id INT)
BEGIN
    SELECT * FROM users WHERE id = id;
END //
 
DELIMITER ;

Dalam contoh di atas, kami telah mencipta prosedur tersimpan dipanggil getUserById dan menentukan id parameter input. Dalam prosedur tersimpan, kami menggunakan pernyataan WHERE untuk memadankan id dan mengembalikan rekod.

Apabila memanggil prosedur tersimpan, parameter perlu diluluskan. Contohnya:

CALL getUserById(1);

Ini akan mengembalikan rekod pengguna dengan id 1.

4. Ubah suai prosedur tersimpan

Dalam sesetengah kes, anda mungkin perlu mengubah suai prosedur tersimpan. Ini mudah dicapai. Anda boleh mengubah suai prosedur tersimpan sedia ada menggunakan arahan berikut:

ALTER PROCEDURE getUsers() 
BEGIN 
    SELECT * FROM users WHERE age > 18; 
END;

Dalam contoh di atas, kami mengubah suai prosedur tersimpan getUsers untuk hanya mengembalikan rekod untuk pengguna yang berumur lebih daripada 18 tahun. Dengan cara ini anda boleh mengubah suai prosedur tersimpan dengan mudah untuk memenuhi keperluan perniagaan yang berbeza.

5. Padamkan prosedur tersimpan

Apabila anda tidak lagi memerlukan prosedur tersimpan, anda boleh menggunakan arahan berikut untuk memadamnya:

DROP PROCEDURE getUsers;

Arahan di atas akan memadamkan nama prosedur tersimpan getUsers. Sila ambil perhatian bahawa pemadaman prosedur tersimpan akan memadamkan takrifan dan rekod berkaitannya secara kekal.

Ringkasan

Prosedur tersimpan adalah salah satu ciri penting dalam MySQL. Mencipta prosedur tersimpan membolehkan anda menyusun dan menggunakan semula kod dengan cekap dan melaksanakan operasi yang kompleks. Dengan artikel ini di tangan, anda kini seharusnya bersedia untuk menulis dan memanggil prosedur tersimpan. Untuk mengetahui lebih lanjut tentang MySQL, lihat dokumentasi rasmi.

Atas ialah kandungan terperinci Buat prosedur tersimpan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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