銷售訂單資料表
create
table
`sales_sales`
(`sa_id`
int(11)
notnull
auto_increment
,`sa_num`
varchar(64
)default
null
,# 訂單編碼
`sa_customid`
int(11)
default
null
,# 使用者id
`sa_orderdate`
datetime
default
null
,# 訂單日期
`sa_realcosts`
varchar(64
)default
null
,# 實付金額(折扣後金額)
`sa_totalcosts`
varchar(64
)default
null
,# 總價
`sa_remarks`
varchar
(255
)default
null
,# 備註
`sa_status`
int(11)
default
null
,# 訂單狀態,1待付款,2已付款,待發貨,3已發貨,4已收貨,5退貨中,6退貨成功,7退貨失敗,8已取消(15分鐘未付款就變成該狀態)
`sa_regtime`
timestamp
null
default
current_timestamp
,primary
key(
`sa_id`),
unique
key`sa_num`
(`sa_num`),
key`ix_sales_sales_sa_regtime`
(`sa_regtime`))
engine
=innodb
auto_increment=3
default
charset
=utf8;
drop
procedure
ifexists
`order_status_change`
;# 儲存過程存在就先刪除,這樣避免重複建立報錯
delimiter;;
create
procedure
`order_status_change`()
# 儲存過程函式名
begin
# 搜尋待付狀態(sa_status=1)且超過15分鐘未支付的訂單
select group_concat(sa_num)
into
@salesnumall
from sales_sales where sa_status=
1and
now(
)>=adddate(sa_orderdate,
interval
15minute);
# select @salesnumall; # 用作除錯
# 取消超時待付的訂單,把訂單狀態改為取消(sa_status=8)
update sales_sales set sa_status=
8where find_in_set(sa_num,
@salesnumall);
end;
;
儲存過程呼叫
call order_status_change(
);
drop event if
exists
`auto_order_status_change`
;create event `auto_order_status_change`
on schedule every 60
second starts '2020-08-14 17:28:36'
on completion preserve enable
docall order_status_change(
);
注意:建立完成後要確認mysql是否開啟了計畫任務,通過下面語句查詢
show variables like
'%event_sche%'
;
查詢結果,看到value的值是off,說明需要mysql開啟計畫任務
開啟mysql計畫任務,看到value的值是on,說明mysql開啟計畫任務成功了
set
global event_scheduler=1;
# 設定開啟mysql計畫任務
MySQL建立儲存過程
在開發過程中,經常會遇到重複使用某乙個功能的情況,為此,mysql引入了儲存過程 儲存過程 就是一條或多條sql語句的集合,當對資料庫進行一系列複雜操作時,儲存過程可以將這些複雜操縱,封裝成乙個 塊,以便重複使用,大大減少資料庫開發人員的工作量 使用create procedure語句 create...
MYSQL 建立儲存過程
無引數儲存過程 delimiter create procedure myfist proc 建立儲存過程 begin select stu id from score where grade 80 and c name 計算機 select name from student where id i...
mysql建立儲存過程
坑一 mysql建立儲存過程中,儲存過程的輸入引數變數命名不應該與欄位名相同。如果相同,導致的結果就是引數的值將不會是你傳入的值,而是變成每條記錄的那個欄位的值。如果在刪除操作時,將會刪除整張表的記錄,是非常危險的。刪除儲存過程 drop procedure if exists pro test 建...