Mysql 存储过程_MySQL
转换结束符:
delimiter /
存储过程:
create procedure test
()#或者是(a int,b int,out b int)
begin
#这里写你的操作
end /
调用:call test()/
存储函数:
create function test
()#或者是(a int,b int)
returns int #函数体必须包含一个RETURN value语句
begin
#这里写你的操作
return 1;
end/
调用:select test()/
备注:存储函数内不能查表(不能使用select 语句)储过程可以
语法:
- 存储过程中的局部变量前面无@符号用declare定义,且只能在begin end块中,全局变量为@var,前面带有@符号
begin
declare ab int default 1;
set a=100;
set a=ab;
enddeclare 定义的变量的优先级最高,所有当out a 等变量和局部变量相同名的时候,该变量只在该begin块中有效
SELECT id,data INTO x,y FROM test.t1 通过查询赋值变量
begin不能并列使用
2.返回值通过OUT参数得到
3.判断
if条件 then
操作
end if;
case 值 (可选)
when 条件 then 操作
when 条件 then 操作
end
4.循环
while 条件 do … end while
loop … end loop
repeat … end repeat
goto
while … end while 例
CREATE PROCEDURE p14 ()
BEGIN
DECLARE v INT;
SET v = 0;
WHILE v
INSERT INTO t VALUES (v);
SET v = v + 1;
END WHILE;
END; //
labels 使用
lab1 :begin
操作
end lab1;
lab2:while 条件 do
#操作
#可以使用leave lab2;跳出循环
#可以使用iterate lab2;跳过当次循环
end while lab2
GOTO 使用
b1:begin
declare i int;
set i=1;
label lab1;
select 'hi';
set i=i+1;
if(i
goto lab1;
end b1;
5.错误处理
declare continue handler for sqlstate 'error number' 操作 end;
declare exit handler for sqlstate 'error number' 操作 end;
sqlstate 'error number' 还可以是
not found #空行
sqlexception #发生错误
sqlwarning #发生警告
以上语句均在发送错误的时候才触发
6.光标
只读的及不滚动, 声明处理程序之前被声明, SELECT语句不能有INTO子句。
例:
CREATE PROCEDURE curdemo()
BEGIN
declare a,b,done int;
DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;#声明错误处理
OPEN cur1;#打开光标
while done!=1 do
fetch cur1 into a,b;
if a>b then select 'a';
else select 'b';
end if ;
end while;
close cur1;
end ;
备注:取得最后插入的ID 函数为last_insert_id();所有的存储过程等信息都在INFORMATION_SCHEMA库中
查询存储过程
show create procedure test/ #查询存储过程详细
show create function test/
触发器: TRIGGER
类型:
INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。
UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。
DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。
使用OLD.col_name来引用更新前的某一行的列,也能使用NEW.col_name来引用更新后的行中的列
时间: BEFORE AFTER
例:
CREATE TRIGGER testtrio BEFORE INSERT ON test1
FOR EACH ROW BEGIN
#操作
END
动态SQL:
语法:
PREPARE stmt_name FROM preparable_stmt;
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
{DEALLOCATE | DROP} PREPARE stmt_name;
实例:
mysql> SET @a=1;
mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?";
mysql> EXECUTE STMT USING @a;
mysql> SET @skip=1; SET @numrows=5;
mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?, ?";
mysql> EXECUTE STMT USING @skip, @numrows;

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Petua pembangunan Vue3+TS+Vite: Cara menyulitkan dan menyimpan data Dengan perkembangan pesat teknologi Internet, keselamatan data dan perlindungan privasi menjadi semakin penting. Dalam persekitaran pembangunan Vue3+TS+Vite, cara menyulitkan dan menyimpan data adalah masalah yang perlu dihadapi oleh setiap pembangun. Artikel ini akan memperkenalkan beberapa teknik penyulitan dan storan data biasa untuk membantu pembangun meningkatkan keselamatan aplikasi dan pengalaman pengguna. 1. Penyulitan Data Penyulitan Data Bahagian Hadapan Penyulitan Bahagian Hadapan ialah bahagian penting dalam melindungi keselamatan data. Biasa digunakan

Laman web ini melaporkan pada 7 Mac bahawa Dr. Zhou Yuefeng, Presiden Barisan Produk Penyimpanan Data Huawei, baru-baru ini menghadiri persidangan MWC2024 dan secara khusus menunjukkan penyelesaian penyimpanan magnetoelektrik OceanStorArctic generasi baharu yang direka untuk data hangat (WarmData) dan data sejuk (ColdData). Zhou Yuefeng, Presiden barisan produk penyimpanan data Huawei, mengeluarkan satu siri penyelesaian inovatif Sumber imej: Siaran akhbar rasmi Huawei yang dilampirkan pada tapak ini adalah seperti berikut: Kos penyelesaian ini adalah 20% lebih rendah daripada pita magnetik. penggunaan kuasa adalah 90% lebih rendah daripada cakera keras. Menurut bloksandfiles media teknologi asing, jurucakap Huawei turut mendedahkan maklumat tentang penyelesaian storan magnetoelektrik: Cakera magnetoelektronik (MED) Huawei ialah inovasi utama dalam media storan magnetik. Generasi pertama ME

Apakah cache? Cache (sebutan ka·shay) ialah komponen perkakasan atau perisian berkelajuan tinggi khusus yang digunakan untuk menyimpan data dan arahan yang kerap diminta, yang seterusnya boleh digunakan untuk memuatkan tapak web, aplikasi, perkhidmatan dan aspek lain bahagian sistem dengan lebih pantas. . Caching menjadikan data yang paling kerap diakses tersedia. Fail cache tidak sama dengan memori cache. Fail cache merujuk kepada fail yang kerap diperlukan seperti PNG, ikon, logo, shader, dsb., yang mungkin diperlukan oleh berbilang program. Fail ini disimpan dalam ruang pemacu fizikal anda, biasanya tersembunyi. Memori cache, sebaliknya, adalah sejenis memori yang lebih pantas daripada memori utama dan/atau RAM. Ia sangat mengurangkan masa capaian data kerana ia lebih dekat dengan CPU dan lebih pantas berbanding dengan RAM

Git ialah sistem kawalan versi teragih yang pantas, boleh dipercayai dan boleh disesuaikan. Ia direka bentuk untuk menyokong aliran kerja bukan linear teragih, menjadikannya ideal untuk pasukan pembangunan perisian dari semua saiz. Setiap direktori kerja Git ialah repositori bebas dengan sejarah lengkap semua perubahan dan keupayaan untuk menjejak versi walaupun tanpa akses rangkaian atau pelayan pusat. GitHub ialah repositori Git yang dihoskan pada awan yang menyediakan semua ciri kawalan semakan yang diedarkan. GitHub ialah repositori Git yang dihoskan pada awan. Tidak seperti Git yang merupakan alat CLI, GitHub mempunyai antara muka pengguna grafik berasaskan web. Ia digunakan untuk kawalan versi, yang melibatkan kerjasama dengan pembangun lain dan menjejaki perubahan pada skrip dan

Bagaimanakah PHP dan swoole mencapai caching dan penyimpanan data yang cekap? Gambaran Keseluruhan: Dalam pembangunan aplikasi web, caching dan penyimpanan data adalah bahagian yang sangat penting. PHP dan swoole menyediakan kaedah yang cekap untuk cache dan menyimpan data. Artikel ini akan memperkenalkan cara menggunakan PHP dan swoole untuk mencapai caching dan penyimpanan data yang cekap, serta memberikan contoh kod yang sepadan. 1. Pengenalan kepada swoole: swoole ialah enjin komunikasi rangkaian tak segerak berprestasi tinggi yang dibangunkan untuk bahasa PHP

Cara menggunakan sessionStorage dengan betul untuk menyimpan maklumat sensitif memerlukan contoh kod khusus Sama ada dalam pembangunan web atau pembangunan aplikasi mudah alih, kami selalunya perlu menyimpan dan memproses maklumat sensitif, seperti bukti kelayakan log masuk pengguna, nombor ID, dsb. Dalam pembangunan bahagian hadapan, menggunakan sessionStorage ialah penyelesaian storan biasa. Walau bagaimanapun, memandangkan sessionStorage ialah storan berasaskan pelayar, beberapa isu keselamatan perlu diberi perhatian untuk memastikan maklumat sensitif yang disimpan tidak diakses dan digunakan secara berniat jahat.

Artikel ini dicetak semula daripada akaun awam WeChat "Hidup dalam Era Maklumat" Penulis hidup dalam era maklumat. Untuk mencetak semula artikel ini, sila hubungi akaun awam Living in the Information Age. Bagi pelajar yang biasa dengan operasi pangkalan data, menulis pernyataan SQL yang indah dan mencari cara untuk mencari data yang mereka perlukan daripada pangkalan data adalah operasi rutin. Bagi pelajar yang biasa dengan pembelajaran mesin, ia juga merupakan operasi rutin untuk mendapatkan data, praproses data, membina model, menentukan set latihan dan set ujian, dan menggunakan model terlatih untuk membuat satu siri ramalan tentang masa depan. Jadi, bolehkah kita menggabungkan kedua-dua teknologi? Kami melihat bahawa data disimpan dalam pangkalan data, dan ramalan perlu berdasarkan data lepas. Jika kita menanyakan data masa depan melalui data sedia ada dalam pangkalan data, maka ia adalah

Gambaran Keseluruhan Rangka Kerja Koleksi Java Rangka kerja pengumpulan Java ialah bahagian penting dalam bahasa pengaturcaraan Java Ia menyediakan satu siri perpustakaan kelas kontena yang boleh menyimpan dan mengurus data. Pustaka kelas kontena ini mempunyai struktur data yang berbeza untuk memenuhi keperluan penyimpanan dan pemprosesan data dalam senario yang berbeza. Kelebihan rangka kerja koleksi ialah ia menyediakan antara muka bersatu, membolehkan pembangun mengendalikan perpustakaan kelas kontena yang berbeza dengan cara yang sama, dengan itu mengurangkan kesukaran pembangunan. Struktur data rangka kerja pengumpulan Java Rangka kerja pengumpulan Java mengandungi pelbagai struktur data, setiap satunya mempunyai ciri unik dan senario yang boleh digunakan. Berikut adalah beberapa struktur data rangka kerja pengumpulan Java yang biasa: 1. Senarai: Senarai ialah koleksi tersusun yang membolehkan elemen diulang. Li
