MySql5.0 dan yang lebih baru mendukung prosedur tersimpan.
Format:
BUAT PROSEDUR nama proses ([parameter proses[,...]]) |
BUAT nama fungsi FUNGSI ([parameter fungsi[,...]]) |
Parameter prosedur:
[ IN |. OUT |. INOUT ] Nama parameter Tipe parameter
Parameter fungsi:
Nama parameter Tipe parameter
Tipe pengembalian:
Tipe data MYSQL yang valid
Karakteristik:
BAHASA SQL |
Badan prosedur/badan fungsi: Formatnya adalah sebagai berikut:
MULAI |
Saya tidak peduli dengan fitur kepemilikan di sini. Ini tidak sesuai dengan spesifikasi SQL, sehingga konten karakteristik (fitur) yang relevan tidak dipertimbangkan.
//
Ada beberapa hal yang perlu diperhatikan selama proses pengembangan:
1. Komentar prosedur tersimpan: MySQL mendukung penggunaan -- atau /**/ komentar, yang pertama adalah komentar baris dan yang terakhir adalah komentar segmen
2. Variabel dideklarasikan terlebih dahulu dengan deklarasi. Variabel sementara dapat langsung dimodifikasi dengan awalan @ sebagai referensi.
3. Saat mengedit langsung menggunakan manajer Administrator MySQL, Anda dapat langsung memasukkan teks fungsi berikut,
jika Anda secara otomatis mengimpor prosedur atau fungsi yang tersimpan dalam skrip, karena default MySQL adalah " ";" adalah pembatas, maka setiap kalimat dari badan prosedur
dikompilasi oleh MySQL sebagai prosedur tersimpan, dan proses kompilasi akan melaporkan kesalahan; oleh karena itu, kata kunci DELIMITER harus digunakan untuk nyatakan sebelumnya bahwa
pembatas akan dipulihkan ketika pembatas segmen saat ini habis. Seperti yang ditunjukkan di bawah ini:
PEMBATAS $$ |
4. MySQL mendukung sejumlah besar fungsi bawaan, beberapa di antaranya konsisten dengan database komersial besar seperti Oracle, informix, sybase, dll., tetapi ada juga beberapa fungsi dengan nama yang tidak konsisten tetapi fungsinya konsisten atau beberapa dengan fungsi yang konsisten; nama tetapi fungsi yang berbeda. Hal ini sangat berguna bagi DBA yang telah ditransfer dari pengembangan database harus memperhatikan hal ini.
5. Debugging prosedur atau fungsi yang tersimpan: Saya belum mempelajari berbagai toolkit yang disediakan oleh MySQL, dan saya tidak yakin apakah ia menyediakan alat debugging. Namun, kesalahan kompilasi relatif mudah ditemukan; gunakan perbandingan Cara bodohnya adalah dengan membuat tabel debugging dan memasukkan catatan pada setiap titik proses di badan paket untuk mengamati proses eksekusi program. Ini juga merupakan metode yang lebih nyaman dan bodoh. ^_^
Berikut adalah dua contoh yang menyediakan algoritma enkripsi string. Setiap kali Anda memanggilnya dengan parameter input yang sama, Anda akan mendapatkan hasil enkripsi yang berbeda.
Algoritma ini relatif sederhana dan tidak kuat. Diimplementasikan dalam bentuk fungsi dan prosedur sebagai berikut:
(1) Fungsi
misalnya:
/**/ |
BUAT FUNGSI fun_addmm(inpass varchar(10)) RETURNS varchar(11)
MULAI
mendeklarasikan string_in varchar(39);
mendeklarasikan string_out varchar(78);
mendeklarasikan offset tinyint(2);
mendeklarasikan
outpass varchar(30) default '
;/*menyatakan saya kecil;*/
(2) Proses
BUAT PROSEDUR `pro_addmm`(IN inpass varchar(10),OUTpass varchar(11)) |
Hasil eksekusinya adalah sebagai berikut:
mysql> panggil pro_addmm('zhouys',@a); |
Algoritma enkripsi memiliki beberapa kelemahan:
1. Tidak mendukung huruf besar dan kecil
2. Tidak mendukung bahasa Mandarin
3. Kekuatan enkripsi tidak cukup
. Orang yang berminat dapat mempelajari cara menulis fungsi dekripsi, jadi saya tidak akan melakukannya. tidak membahas detailnya di sini.