添加 執(zhí)行SQL 語句后在來個 查詢 影響行數(shù)
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供港南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為港南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
添加語句
$num = mysql_num_rows($result);
然后判斷如果影響行數(shù)不等于0就執(zhí)行刪除
if($num!=0){
刪除語句
}
mysql要實(shí)現(xiàn)定時執(zhí)行sql語句就要用到Event
具體操作如下:
先看看看event 事件是否開啟
show variables like '%sche%';
如沒開啟,則開啟。需要數(shù)據(jù)庫超級權(quán)限
set global event_scheduler =1;
創(chuàng)建存儲過程 update_a (注:就是你要執(zhí)行的sql語句)
mysql create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);
創(chuàng)建一個定時任務(wù):event e_updateA
mysql create event if not exists e_updateA
- on schedule every 60 second ---設(shè)置60秒執(zhí)行一次
- on schedule at date_add(now(),interval 1 minute) ---在一分鐘后執(zhí)行
- on completion preserve
- do call update_a(); ---執(zhí)行update_a()存儲過程
創(chuàng)建Event之后,sql語句就定時執(zhí)行一次。
關(guān)閉事件任務(wù)
首先在sql中查詢計(jì)劃事件的狀態(tài):SHOW
VARIABLES
LIKE
'event_scheduler'
如果返回的是off表示當(dāng)前是關(guān)閉狀態(tài),如果是on當(dāng)前已經(jīng)開啟了計(jì)劃任務(wù)。
在mysql程序的目錄下找到my.ini文件,添加一個項(xiàng):event_scheduler
=
1
保存后重啟mysql服務(wù)即可,重啟服務(wù)可以在服務(wù)管理里面找到
也可以用腳本來實(shí)現(xiàn):
mysql
event_scheduler
開啟event_scheduler
sql指令:
SET
GLOBAL
event_scheduler
=
ON;
SET
@@global.event_scheduler
=
ON;
SET
GLOBAL
event_scheduler
=
1;
SET
@@global.event_scheduler
=
1;
相反,關(guān)閉event_scheduler指令:
SET
GLOBAL
event_scheduler
=
OFF;
SET
@@global.event_scheduler
=
OFF;
SET
GLOBAL
event_scheduler
=
0;
SET
@@global.event_scheduler
=
0;
在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當(dāng)時的MySQL的存儲引擎還是ISAM存儲引擎。但是,當(dāng)出現(xiàn)MyISAM存儲引擎之后,也就是從MySQL 3.23開始,MySQL單表最大限制就已經(jīng)擴(kuò)大到了64PB了(官方文檔顯示)。也就是說,從目前的技術(shù)環(huán)境來看,MySQL數(shù)據(jù)庫的MyISAM存儲 引擎單表大小限制已經(jīng)不是有MySQL數(shù)據(jù)庫本身來決定,而是由所在主機(jī)的OS上面的文件系統(tǒng)來決定了。
而MySQL另外一個最流行的存儲引擎之一Innodb存儲數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲方式,還有一種是獨(dú)享表空間存儲方式。
當(dāng)使用共享表空間存儲方式的時候,Innodb的所有數(shù)據(jù)保存在一個單獨(dú)的表空間里面,而這個表空間可以由很多個文件組成,一個表可以跨多個文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說,Innodb的單 表限制基本上也在64TB左右了,當(dāng)然這個大小是包括這個表的所有索引等其他相關(guān)數(shù)據(jù)。
而當(dāng)使用獨(dú)享表空間來存放Innodb的表的時候,每個表的數(shù)據(jù)以一個單獨(dú)的文件來存放,這個時候的單表限制,又變成文件系統(tǒng)的大小限制了。
CREATE EVENT [事件名]
ON SCHEDULE EVERY 7 WEEK STARTS
'2014-05-14 04:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
[要執(zhí)行的sql語句]
事件針對的是整個數(shù)據(jù)庫,而不是針對某個Session。因此事件一旦創(chuàng)建,所有的Session都有效。