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

Penjelasan terperinci tentang prosedur tersimpan pangkalan data mysql

PHPz
Lepaskan: 2023-04-17 17:30:01
asal
1422 orang telah melayarinya

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;
Salin selepas log masuk
  • 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)
Salin selepas log masuk

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;
Salin selepas log masuk

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);
Salin selepas log masuk

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

CALL get_employee(1);
Salin selepas log masuk

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;
Salin selepas log masuk
  1. Panggil prosedur tersimpan

Kami boleh memanggil prosedur tersimpan menggunakan kenyataan berikut:

CALL transfer(1, 2, 100);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan