1、使用MySQL中的存儲(chǔ)過(guò)程+事件解決。
成都創(chuàng)新互聯(lián)公司咨詢熱線:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十載,包括成都混凝土攪拌罐等多個(gè)行業(yè)擁有多年的網(wǎng)站推廣經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。
存儲(chǔ)過(guò)程邏輯為:
1)創(chuàng)建一個(gè)新表operationlog_temp,各字段同operationlog相同;
2)將表operationlog更名為operationlog_yyyy-mm-dd;
3)將表operationlog_temp更名為operationlog
事件邏輯為:
1)每個(gè)3個(gè)月定時(shí)調(diào)用一次存儲(chǔ)過(guò)程bakOpLog
2、定義存儲(chǔ)過(guò)程bakOpLog:
【注】
開(kāi)始事件功能(MySQL必須先開(kāi)啟事件功能,才能使用事件),用如下SQL語(yǔ)句
SHOW VARIABLES LIKE 'event_scheduler';
SET GLOBAL event_scheduler = ON;
call 就是調(diào)用存儲(chǔ)過(guò)程或者函數(shù)
用法:
call 存儲(chǔ)過(guò)程或者函數(shù)名
寫(xiě)存儲(chǔ)過(guò)程函數(shù)(如function cleanTable),在函數(shù)中寫(xiě)50條delete語(yǔ)句,或者在函數(shù)中弄個(gè)循環(huán)都可以。然后在客戶端執(zhí)行call cleanTable()就可以了。
給你個(gè)例子
drop procedure if exists call proc_temp;
delimiter $ //存儲(chǔ)過(guò)程從$ 開(kāi)始
create procedure proc_temp(
IN startDate VARCHAR(20),//設(shè)置傳入的變量,沒(méi)有可以不要傳
IN endDate VARCHAR(20))
BEGIN
DECLARE dflag INT(11); //這里可以定義你需要的僅在存儲(chǔ)過(guò)程里使用的變量
SET dflag = 0;//初始化
select * from table where time between startDate and endDate ;//你的sql語(yǔ)句,可以一句可以多句
END $//存儲(chǔ)過(guò)程從$ 結(jié)束
delimiter ;
當(dāng)上面的選中運(yùn)行后沒(méi)問(wèn)題,可以選中下面的call xx 運(yùn)行,上面的代碼沒(méi)有改動(dòng)的話只需要運(yùn)行一次
call proc_temp("2017-07-05","2017-08-05")
create procedure proprice() is
begin
select avg(price) as average from products;
end;
以上就是規(guī)范的格式,請(qǐng)不要添加額外的東西,執(zhí)行之后調(diào)用即可。
如果有其他問(wèn)題,你可以先百度一下存儲(chǔ)過(guò)程的規(guī)范應(yīng)用
java代碼:
Class.forName("com.mysql.jdbc.Driver");
Connection?con?=?DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=rootpassword=111111");
String?sql?=?"{call?sel(?)}";
CallableStatement?cs?=?(CallableStatement)con.prepareCall(sql);
cs.execute();
String?name?=?cs.getString(1);
System.out.println(name);
創(chuàng)建存儲(chǔ)過(guò)程代碼:
drop?procedure?if?exists?sel;
create?procedure?sel(out?name1?varchar(225))
begin
? select?name?into?name1?from?a?limit?1;
end
輸出結(jié)果:
文章標(biāo)題:mysql怎么call,mysql怎么創(chuàng)建數(shù)據(jù)表
地址分享:http://chinadenli.net/article22/dseodcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制網(wǎng)站、標(biāo)簽優(yōu)化、App開(kāi)發(fā)、網(wǎng)站維護(hù)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)