2013-02-14 110 views
-1

我正在學習一些Mysql,我有這個問題: 在我的數據庫中,當有人將一個物品放入購物車時,它會得到「保留」狀態。但是如果該人在接下來的30分鐘內沒有結賬,該項目應該再次設置爲「免費」。是否有可能不使用CRON? 或一些輕量級的解決方案....Mysql日程安排事件

謝謝! :)

+1

hmmm反對無回答?這是新的 – 2013-02-14 11:06:50

回答

0

的一種方法是設置保留到一個特定的時間,說:

update `item` set `reserved` = 1, `reservedto` = ADDTIME(NOW(),'00:30') where `id` = ?; 

然後檢查可用的項目(或別的地方,如果發生這種情況經常)只需添加一個realese聲明像這樣前:

update `item` set `reserved` = 0 where `reservedto` < NOW() and `reserved` = 1; 

如果你有一個很大的表,你可能想把索引放在reservedto列上。

+0

該表預計會相當大...該查詢將是一種沉重的不是嗎? – 2013-02-14 14:11:20

+0

是的,第二個命令會很重,不應該經常執行。你的選擇是創建第二個只有保留的表格,當它們應該被髮布時你「檢查」。但是如果你有一個關於「reservedto」和「reserved」的索引,上面的第二個命令就不會那麼糟糕了。 – 2013-02-20 11:31:00