Terkadang Anda mungkin perlu memberikan input ke prosedur tersimpan di MySQL. Pada artikel ini, kita akan melihat cara membuat prosedur tersimpan MySQL dengan parameter dan berbagai jenis parameter yang didukung dalam prosedur tersimpan.
Prosedur Tersimpan MySQL dengan Parameter
Berikut adalah langkah-langkah untuk membuat stored procedure dengan parameter. MySQL mendukung 3 jenis parameter prosedur tersimpan – IN, OUT, dan INOUT. Mari kita lihat masing-masing secara detail
MASUK – Ini adalah mode default. Dalam mode ini, pernyataan panggilan harus meneruskan argumen ke prosedur tersimpan. Juga, nilai parameter tipe IN dilindungi, yang berarti meskipun Anda mengubah nilainya di dalam prosedur tersimpan, itu akan tetap tidak berubah di luarnya.
KELUAR – Nilai parameter OUT dapat diubah di dalam prosedur tersimpan dan nilai barunya akan diteruskan kembali ke pernyataan panggilan.
MASUK KELUAR – Dalam hal ini, pernyataan panggilan dapat meneruskan argumen, dan prosedur tersimpan dapat mengubah nilai ini dan meneruskannya kembali ke pernyataan panggilan.
Berikut sintaks untuk stored procedure dengan parameter di MySQL.
[IN | OUT | INOUT] parameter_name datatype[(length)]
Dalam pernyataan di atas, pertama-tama kita tentukan jenis parameter, kemudian nama parameter dan jenis kolom.
Prosedur Tersimpan MySQL dengan Contoh Parameter
Mari kita lihat beberapa contoh prosedur tersimpan dengan parameter.
Parameter IN
Berikut query SQL untuk membuat stored procedure dengan parameter IN.
mysql> DELIMITER // mysql> CREATE PROCEDURE get_product( IN prod_id int ) BEGIN SELECT * FROM products WHERE product_id = prod_id; END // mysql> DELIMITER ; mysql> call get_product(1); +------------+--------------+-------+ | product_id | product_name | price | +------------+--------------+-------+ | 1 | iPhone 11 | 400 | +------------+--------------+-------+ mysql> call get_product(); ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE sample.get_product; expected 1, got 0
Di atas, kami telah mendefinisikan parameter prosedur tersimpan IN prod_id . Ketika kami meneruskan argumennya dalam pernyataan panggilan, prosedur tersimpan mengembalikan hasil yang diharapkan. Namun, jika Anda tidak memberikan argumen, maka itu akan memberikan kesalahan.
Bonus Baca :Cara Membuat Composite Primary Key di MySQL
Parameter KELUAR
Berikut adalah prosedur tersimpan yang dibuat menggunakan parameter OUT.
mysql> DELIMITER $$ mysql> CREATE PROCEDURE get_count( IN prod_id int, OUT total INT ) BEGIN SELECT COUNT(*) INTO total FROM products WHERE product_id = prod_id; END$$ mysql> DELIMITER ; mysql> call get_count(1,@total); mysql> select @total; +--------+ | @total | +--------+ | 1 | +--------+
Dalam prosedur tersimpan di atas, kami mendefinisikan 2 parameter – parameter IN untuk prod_id dan parameter OUT untuk menyimpan hasil prosedur.
Ketika kami melewati id produk dalam pernyataan panggilan, prosedur tersimpan kami menghitung jumlah baris yang cocok dengan id produk ini dan menyimpan hasilnya dalam parameter OUT total
Bonus Baca :Cara Memotong Tabel di MySQL
Parameter INOUT
Berikut adalah prosedur tersimpan yang dibuat menggunakan parameter INOUT.
DELIMITER $$ CREATE PROCEDURE counter( INOUT count INT, IN increment INT ) BEGIN SET count = count + increment; END$$ DELIMITER ;
Dalam prosedur tersimpan di atas, kami telah mendefinisikan parameter IN kenaikan dan parameter INOUT hitung yang menyimpan hasil prosedur tersimpan. Prosedur tersimpan kami pada dasarnya menambahkan kenaikan untuk menghitung parameter dan menyimpan hasilnya di count parameter.
mysql> SET @count = 10; mysql> CALL counter(@count,1); mysql> SELECT @count; +--------+ | @count | +--------+ | 11 | +--------+
Semoga sekarang Anda dapat dengan mudah membuat stored procedure dengan parameter di MySQL.
Bonus Baca :MySQL DROP VIEW
Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!