Bagaimana Cara Membuat Stored Procedure di MySQL?

Dibuat
·
Dilihat23 kali
0

Bagaimana caranya membuat stored procedure di MySQL ya? Saya ingin mengurangi penggunaan query berulang di beberapa tempat, berdasarkan yang saya baca, bisa menggunakan fitur bernama stored procedure yang disediakan MySQL, saya sudah baca dokumentasinya di web resminya tapi masih belum paham.

Misalnya, saya memiliki data dalam tabel users sebagai berikut:

mysql> select * from users;
+----+---------+---------------------+
| id | name    | created_at          |
+----+---------+---------------------+
|  1 | budi    | 2024-01-21 00:00:00 |
|  2 | bambang | 2024-01-20 00:00:00 |
|  3 | dodi    | 2024-01-23 00:00:00 |
|  4 | ucup    | 2024-01-22 00:00:00 |
+----+---------+---------------------+

Di banyak tempat saya sering mengambil data users berdasarkan tanggal created_at yang lebih besar dari yang saya tentukan, atau yang lebih baru berdasarkan tanggal yang diberikan, seperti ini:

SELECT * FROM users WHERE created_at >= '2024-01-22';

Apakah bisa dibuatkan stored procedure sehingga saya hanya memanggil misalnya get_users_by_created_at('2024-01-22'); tidak perlu menulis query SELECT.

1 Jawaban
0

Sintaks untuk membuat stored procedure:

DELIMITER //

  CREATE PROCEDURE nama_procedure(
    parameter_1, paramter_2, ..., parameter_n
  )
  BEGIN
    kode_sql_disini
  END//

DELIMITER ;

Untuk kasus seperti yang ditanyakan, maka stored procedure dapat dibuat seperti ini:

DELIMITER //

  CREATE PROCEDURE get_users_by_created_at_gte(
    IN gte_created_at DATE
  )
  BEGIN
    SELECT * FROM users WHERE created_at >= gte_created_at;
  END//

DELIMITER ;

Jangan lupa enter sekali untuk mengeksekusi kode di bari terakhir. Untuk menggunakan procedure yang sudah dibuat sintaksnya adalah CALL nama_procedure(parameter);.

mysql> CALL get_users_by_created_at_gte('2024-01-22');
+----+------+---------------------+
| id | name | created_at          |
+----+------+---------------------+
|  3 | dodi | 2024-01-23 00:00:00 |
|  4 | ucup | 2024-01-22 00:00:00 |
+----+------+---------------------+

Bonus, untuk menghapus procedure perintahnya DROP PROCEDURE get_users_by_created_at_gte.

Dibuat

Kamu tau jawabannya?

Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!