Untuk membuat prosedur tersimpan di MySQL, anda menggunakan pernyataan CREATE PROCEDURE
. Inilah panduan langkah demi langkah mengenai cara melakukan ini:
CREATE PROCEDURE
diikuti dengan nama prosedur anda.IN
, OUT
, atau INOUT
, dan setiap parameter memerlukan jenis data.BEGIN
dan END
. Di dalam blok ini, anda menulis kenyataan SQL bahawa prosedur akan dilaksanakan.;
) sebagai terminator pernyataan. Walau bagaimanapun, apabila membuat prosedur yang disimpan, anda perlu mengubah sementara pembatas ini untuk mengelakkan konflik dengan titik -titik besar yang digunakan dalam badan prosedur. Biasanya, //
atau $$
digunakan sebagai pembatas alternatif.Inilah contoh cara membuat prosedur yang disimpan mudah:
<code class="sql">DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT * FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
Dalam contoh ini, GetEmployeeData
adalah prosedur yang mengambil employeeID
sebagai parameter input dan mengembalikan semua data untuk pekerja itu dari jadual employees
.
Prosedur yang disimpan MySQL boleh termasuk parameter pelbagai jenis dan mod. Parameter boleh dikategorikan kepada tiga mod:
IN
membolehkan anda lulus nilai ke dalam prosedur. Prosedur ini boleh membaca nilai ini tetapi tidak dapat mengubahnya.OUT
membolehkan prosedur untuk mengembalikan nilai kepada persekitaran panggilan. Prosedur ini boleh mengubah nilai parameter OUT
, dan nilai yang diubahsuai boleh diakses selepas pelaksanaan prosedur.INOUT
menggabungkan sifat IN
dan OUT
. Ia membolehkan anda lulus nilai ke dalam prosedur dan juga membolehkan prosedur untuk mengubah nilai dan mengembalikannya ke persekitaran panggilan. Parameter juga boleh mempunyai jenis data seperti INT
, VARCHAR
, DATE
, dan lain -lain, yang harus ditentukan ketika mengisytiharkannya. Berikut adalah contoh prosedur yang disimpan dengan ketiga -tiga jenis parameter:
<code class="sql">DELIMITER // CREATE PROCEDURE ProcessEmployeeData( IN empID INT, OUT empName VARCHAR(100), INOUT empSalary DECIMAL(10, 2) ) BEGIN SELECT first_name, last_name INTO empName FROM employees WHERE id = empID; UPDATE employees SET salary = empSalary 1000 WHERE id = empID; SELECT salary INTO empSalary FROM employees WHERE id = empID; END // DELIMITER ;</code>
Untuk mengubah suai prosedur tersimpan yang sedia ada di MySQL, anda menggunakan pernyataan ALTER PROCEDURE
. Walau bagaimanapun, ALTER PROCEDURE
adalah terhad kepada perubahan sifat -sifat tertentu prosedur, seperti ciri -cirinya (seperti konteks keselamatan atau keselamatan SQL). Untuk mengubah suai kod atau logik sebenar dalam prosedur, anda perlu menggunakan DROP PROCEDURE
dan CREATE PROCEDURE
.
Inilah cara melakukannya:
<code class="sql">DROP PROCEDURE IF EXISTS ProcedureName;</code>
<code class="sql">DELIMITER // CREATE PROCEDURE ProcedureName( -- Parameters ) BEGIN -- New procedure body END // DELIMITER ;</code>
Sebagai contoh, jika anda ingin mengemas kini prosedur GetEmployeeData
untuk mengembalikan nama pertama dan terakhir pekerja, anda akan melakukan perkara berikut:
<code class="sql">DROP PROCEDURE IF EXISTS GetEmployeeData; DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT first_name, last_name FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
Prosedur yang disimpan menawarkan beberapa faedah untuk pengurusan pangkalan data di MySQL:
Dengan memanfaatkan manfaat ini, prosedur yang disimpan dapat meningkatkan kecekapan dan keselamatan pengurusan pangkalan data di MySQL.
Atas ialah kandungan terperinci Bagaimana anda membuat prosedur tersimpan di MySQL menggunakan pernyataan Create Prosedur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!