MYSQL批量插入數(shù)據(jù)的實現(xiàn)代碼
更新時間:2008年10月11日 22:43:05 作者:
非常的實現(xiàn)原理,代碼較多,建議大家仔細(xì)看看。
也可以給區(qū)塊起別名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出區(qū)塊,執(zhí)行區(qū)塊以后的代碼
2.條件語句
if 條件 then
statement
else
statement
end if;
3.循環(huán)語句
(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ù)庫中所有存儲的存儲過程基本信息,包括所屬數(shù)據(jù)庫,存儲過程名稱,創(chuàng)建時間等
2.show create procedure sp_name
存儲過程創(chuàng)建語法:
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 來查看存儲過程信息
另,系統(tǒng)表INFORMATION_SCHEMA.ROUTINES也包含了存儲過程的一些信息
同樣地,函數(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 ]
語句體
函數(shù)與存儲過程基本一樣,其區(qū)別主要有:
1、 要使用RETURNS指定返回類型
2、 函數(shù)必須返回值,且在語句體中使用RETURN返回(注意:指定返回類型用RETURNS,返回值用RETURN)
3、 參數(shù)不區(qū)分IN,OUT,全部為IN類形
例:
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)對表table_name執(zhí)行update,insert,delete操作之前(before)或之后(after)時觸發(fā)語句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 Boot console log 格式自定義方式
這篇文章主要介紹了Spring Boot console log 格式自定義方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Spring Security+Spring Data Jpa如何進(jìn)行安全管理
這篇文章主要介紹了Spring Security+Spring Data Jpa如何進(jìn)行安全管理,幫助大家更好的理解和學(xué)習(xí)Spring Security框架,感興趣的朋友可以了解下2020-09-09java 獲取當(dāng)前函數(shù)名的實現(xiàn)代碼
以下是對使用java獲取當(dāng)前函數(shù)名的實現(xiàn)代碼進(jìn)行了介紹。需要的朋友可以過來參考下2013-08-08