Rumah  >  Artikel  >  pangkalan data  >  Penjelasan terperinci tentang prosedur tersimpan pangkalan data mysql

Penjelasan terperinci tentang prosedur tersimpan pangkalan data mysql

PHPz
PHPzasal
2023-04-17 16:38:161351semak imbas

1. Pengenalan

MySQL ialah sistem pengurusan pangkalan data hubungan (RDBMS) yang popular yang menggunakan pernyataan SQL untuk mengendalikan data. Prosedur tersimpan ialah koleksi pernyataan SQL yang boleh digunakan dan dipanggil berulang kali. Artikel ini akan memperkenalkan penciptaan, panggilan dan operasi contoh prosedur tersimpan dalam pangkalan data MySQL.

2. Penciptaan prosedur tersimpan MySQL

  1. Mencipta prosedur tersimpan

Untuk mencipta prosedur tersimpan dalam MySQL, anda boleh menggunakan pernyataan berikut:

CREATE PROCEDURE procedure_name ([parameter_list])
BEGIN
    -- put your SQL statements here;
END;
  • procedure_name: nama prosedur tersimpan.
  • parameter_list: senarai parameter, yang boleh kosong.
  • BEGIN dan END: aksara permulaan dan akhir pernyataan SQL.
  1. Parameter prosedur tersimpan

Prosedur tersimpan boleh mengandungi 0 atau lebih parameter, sintaksnya adalah seperti berikut:

CREATE PROCEDURE procedure_name (IN|OUT|INOUT parameter_name data_type)

masing-masing Jenis parameter masuk, keluar dan masuk dan keluar, parameter_name dan data_type masing-masing mewakili nama parameter dan jenis data.

  1. Contoh

Berikut ialah contoh mencipta prosedur tersimpan dengan parameter:

CREATE PROCEDURE get_employee (IN employee_id INT)
BEGIN
    SELECT * FROM employee WHERE id = employee_id;
END;

3. Memanggil prosedur tersimpan MySQL

Logik perniagaan yang kompleks boleh dilaksanakan dalam MySQL menggunakan prosedur tersimpan. Untuk memanggil prosedur tersimpan, anda boleh menggunakan pernyataan berikut:

CALL procedure_name (parameter_list);

Sebagai contoh, apabila menggunakan prosedur tersimpan yang dibuat di atas, kita boleh menggunakan pernyataan berikut untuk memanggil:

CALL get_employee(1);

4. Contoh prosedur tersimpan MySQL

Mari kita lihat contoh praktikal untuk melaksanakan operasi pemindahan akaun.

  1. Buat prosedur tersimpan pemindahan
CREATE PROCEDURE transfer(IN from_account INT, IN to_account INT, IN amount DECIMAL(10,2))
BEGIN
    DECLARE from_balance DECIMAL(10,2);
    DECLARE to_balance DECIMAL(10,2);

    START TRANSACTION;

    SELECT balance INTO from_balance FROM account WHERE id = from_account FOR UPDATE;
    SELECT balance INTO to_balance FROM account WHERE id = to_account FOR UPDATE;

    IF from_balance < amount THEN
        ROLLBACK;
        SELECT 'Insufficient balance' AS message;
    ELSE
        UPDATE account SET balance = from_balance - amount WHERE id = from_account;
        UPDATE account SET balance = to_balance + amount WHERE id = to_account;
        COMMIT;
        SELECT 'Transfer succeed!' AS message;
    END IF;
END;
  1. Panggil prosedur tersimpan

Kami boleh memanggil prosedur tersimpan menggunakan kenyataan berikut:

CALL transfer(1, 2, 100);

Pindahkan 100 yuan daripada pengguna dengan ID akaun 1 kepada pengguna dengan ID akaun 2.

Di atas adalah operasi asas prosedur tersimpan pangkalan data MySQL Sudah tentu, dalam pembangunan sebenar, akan ada lebih banyak senario di mana prosedur tersimpan perlu digunakan, dan pembangun perlu mereka bentuk dan memanggilnya mengikut keperluan sebenar. .

Atas ialah kandungan terperinci Penjelasan terperinci tentang prosedur tersimpan pangkalan data 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