MYSQL批量插入數(shù)據(jù)的實(shí)現(xiàn)代碼
也可以給區(qū)塊起別名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出區(qū)塊,執(zhí)行區(qū)塊以后的代碼
2.條件語(yǔ)句
if 條件 then
statement
else
statement
end if;
3.循環(huán)語(yǔ)句
(1).while循環(huán)
[label:] WHILE expression DO
statements
END WHILE [label] ;
(2).loop循環(huán)
[label:] LOOP
statements
END LOOP [label];
(3).repeat until循環(huán)
[label:] REPEAT
statements
UNTIL expression
END REPEAT [label] ;
五.其他常用命令
1.show procedure status
顯示數(shù)據(jù)庫(kù)中所有存儲(chǔ)的存儲(chǔ)過(guò)程基本信息,包括所屬數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程名稱(chēng),創(chuàng)建時(shí)間等
2.show create procedure sp_name
存儲(chǔ)過(guò)程創(chuàng)建語(yǔ)法:
CREATE PROCEDURE procedure_name ([parameter[,...])
[LANGUAGE SQL]
[ [NOT] DETERMINISTIC ]
[{CONTAINS SQL|MODIFIES SQL DATA|READS SQL DATA|NO SQL}]
[SQL SECURITY {DEFINER|INVOKER} ]
[COMMENT comment_string]
procedure_statements
可用SHOW PROCEDURE STATUS 或 SHOW CREATE PROCEDURE 來(lái)查看存儲(chǔ)過(guò)程信息
另,系統(tǒng)表INFORMATION_SCHEMA.ROUTINES也包含了存儲(chǔ)過(guò)程的一些信息
同樣地,函數(shù)也可以使用同樣方式查看(SHOW FUNCTION STATUS)
函數(shù)的創(chuàng)建
CREATE FUNCTION function_name (parameter[,...])
RETURNS datatype
[LANGUAGE SQL]
[ [NOT] DETERMINISTIC ]
[ {CONTAINS SQL | NO SQL | MODIFIES SQL DATA | READS SQL DATA} ]
[ SQL SECURITY {DEFINER|INVOKER} ]
[ COMMENT comment_string ]
語(yǔ)句體
函數(shù)與存儲(chǔ)過(guò)程基本一樣,其區(qū)別主要有:
1、 要使用RETURNS指定返回類(lèi)型
2、 函數(shù)必須返回值,且在語(yǔ)句體中使用RETURN返回(注意:指定返回類(lèi)型用RETURNS,返回值用RETURN)
3、 參數(shù)不區(qū)分IN,OUT,全部為IN類(lèi)形
例:
CREATE FUNCTION cust_status(in_status CHAR(1))
RETURNS VARCHAR(20)
BEGIN
DECLARE long_status VARCHAR(20);
IF in_status = 'O' THEN SET long_status='Overdue';
ELSEIF in_status = 'U' THEN SET long_status='Up to date';
ELSEIF in_status = 'N' THEN SET long_status='New';
END IF;
RETURN(long_status);
END;
調(diào)用:
SELECT cust_status('O');
觸發(fā)器
CREATE [DEFINER={user|CURRENT_USER}] TRIGGER trigger_name
{BEFORE|AFTER} {UPDATE|INSERT|DELETE}
ON table_name
FOR EACH ROW
trigger_statements
意義:當(dāng)對(duì)表table_name執(zhí)行update,insert,delete操作之前(before)或之后(after)時(shí)觸發(fā)語(yǔ)句trigger_statements操作
例:
mysql> CREATE TRIGGER account_balance_au
AFTER UPDATE ON account_balance FOR EACH ROW
BEGIN
DECLARE dummy INT;
IF NEW.balance<0 THEN
SET NEW.balance=NULL;
END IF;
END
上述觸發(fā)器表示:當(dāng)更新表account_balance之后,如果更新的值balance小于0,則將它改為NULL,
注:如果為OLD.balance則表示更新前的原值
相關(guān)文章
spring框架下@value注解屬性static無(wú)法獲取值問(wèn)題
這篇文章主要介紹了spring框架下@value注解屬性static無(wú)法獲取值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Springboot整合Mybatispuls的實(shí)例詳解
這篇文章主要介紹了Springboot整合Mybatispuls的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java實(shí)現(xiàn)調(diào)用ElasticSearch?API的示例詳解
這篇文章主要為大家詳細(xì)介紹了Java調(diào)用ElasticSearch?API的效果資料,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2023-03-03
SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的解決方法
在Spring?Cloud中,使用Feign進(jìn)行服務(wù)之間的調(diào)用時(shí),默認(rèn)情況下是不會(huì)傳遞header的,這篇文章給大家介紹SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的解決方法,感興趣的朋友一起看看吧2024-01-01
Spring技巧之如何動(dòng)態(tài)讀取配置文件
這篇文章主要介紹了Spring技巧之如何動(dòng)態(tài)讀取配置文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
使用Java的Graphics類(lèi)進(jìn)行繪圖的方法詳解
這篇文章主要介紹了使用Java的Graphics類(lèi)進(jìn)行繪圖的方法,是Java的GUI編程的基礎(chǔ),需要的朋友可以參考下2015-10-10
Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式
這篇文章主要介紹了Springboot多數(shù)據(jù)源配置之整合dynamic-datasource方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Java數(shù)據(jù)結(jié)構(gòu)之稀疏數(shù)組的實(shí)現(xiàn)與應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)中稀疏數(shù)組的實(shí)現(xiàn)與應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2022-10-10

