Rumah > Artikel > pangkalan data > pelaksanaan prosedur tersimpan mysql
MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka Berbanding dengan sistem pengurusan pangkalan data hubungan yang lain, MySQL ialah salah satu sistem yang paling biasa digunakan. MySQL boleh melakukan pemprosesan data yang kompleks dan logik perniagaan melalui prosedur tersimpan, meningkatkan prestasi dan kecekapan pangkalan data. Berikut menerangkan cara melaksanakan prosedur tersimpan MySQL.
Dalam MySQL, anda boleh menggunakan pernyataan "CREATE PROCEDURE" untuk mencipta prosedur tersimpan. Sintaksnya adalah seperti berikut:
CREATE PROCEDURE procedure_name ([IN / OUT / INOUT] parameter_name data_type, [...]) BEGIN -- 存储过程体 END;
Di mana:
Sebagai contoh, berikut ialah contoh mudah prosedur tersimpan:
CREATE PROCEDURE hello_world() BEGIN SELECT 'Hello, World!'; END;
Untuk melaksanakan prosedur tersimpan, anda perlu menggunakan pernyataan "PANGGILAN". Sintaks adalah seperti berikut:
CALL procedure_name([parameter_value, ...]);
Di mana:
Sebagai contoh, kita boleh menggunakan pernyataan berikut untuk melaksanakan prosedur tersimpan hello_world() yang dibuat di atas:
CALL hello_world();
Hasil pelaksanaan adalah seperti berikut:
+-------------+ | Hello, World! | +-------------+ | Hello, World! | +-------------+ 1 row in set (0.00 sec)
Gunakan parameter IN untuk menghantar nilai ke prosedur yang disimpan untuk melaksanakan beberapa operasi tertentu. Sebagai contoh, prosedur tersimpan berikut akan menggunakan parameter IN untuk mencari butiran pengguna tertentu:
CREATE PROCEDURE get_user_details(IN user_id INT) BEGIN SELECT * FROM users WHERE id = user_id; END;
Apabila melaksanakan prosedur tersimpan, kami perlu menghantar ID pengguna kepada prosedur tersimpan. Sebagai contoh, berikut ialah contoh:
CALL get_user_details(1);
Hasil pelaksanaan adalah seperti berikut:
+----+----------+---------+------------+ | id | username | country | created_at | +----+----------+---------+------------+ | 1 | john | USA | 2022-05-01 | +----+----------+---------+------------+ 1 row in set (0.00 sec)
Gunakan parameter OUT untuk dapatkan nilai daripada pemulangan prosedur tersimpan. Sebagai contoh, prosedur tersimpan berikut akan menggunakan parameter OUT untuk mengembalikan butiran pengguna yang ditentukan:
CREATE PROCEDURE get_user_details(IN user_id INT, OUT username TEXT, OUT country TEXT, OUT created_at DATE) BEGIN SELECT username, country, created_at INTO username, country, created_at FROM users WHERE id = user_id; END;
Apabila melaksanakan prosedur tersimpan ini, kami perlu lulus ID pengguna dan prosedur tersimpan akan mengembalikan butiran pengguna yang sepadan dengan maklumat ID tersebut. Sebagai contoh, berikut ialah contoh:
CALL get_user_details(1, @username, @country, @created_at); SELECT @username, @country, @created_at;
Hasil pelaksanaan adalah seperti berikut:
+----------+---------+------------+ | @username | @country | @created_at | +----------+---------+------------+ | john | USA | 2022-05-01 | +----------+---------+------------+ 1 row in set (0.00 sec)
Menggunakan parameter INOUT boleh lulus parameter dan mengembalikan nilai menggunakan parameter itu. Sebagai contoh, prosedur tersimpan berikut akan menggunakan parameter INOUT untuk mengemas kini butiran pengguna yang ditentukan:
CREATE PROCEDURE update_user_details(INOUT user_id INT, IN username TEXT, IN country TEXT, IN created_at DATE) BEGIN UPDATE users SET username = username, country = country, created_at = created_at WHERE id = user_id; END;
Semasa melaksanakan prosedur tersimpan ini, kami perlu menghantar ID pengguna, bersama dengan butiran untuk dikemas kini. Sebagai contoh, berikut ialah contoh:
SET @user_id = 1; CALL update_user_details(@user_id, 'jane', 'UK', '2022-05-01'); SELECT @user_id;
Hasil pelaksanaan adalah seperti berikut:
+---------+ | @user_id | +---------+ | 1 | +---------+ 1 row in set (0.00 sec)
Seperti yang anda lihat, prosedur tersimpan berjaya mengemas kini butiran pengguna dan mengembalikan ID pengguna.
Dengan menggunakan prosedur tersimpan, pemprosesan data yang cekap dan logik perniagaan boleh dilakukan dalam MySQL. Artikel ini menerangkan cara membuat, melaksanakan dan menggunakan pelbagai jenis prosedur tersimpan. Menggunakan prosedur tersimpan boleh meningkatkan prestasi dan kecekapan pangkalan data MySQL dan memberikan sokongan yang lebih baik untuk perniagaan kami.
Atas ialah kandungan terperinci pelaksanaan prosedur tersimpan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!