MySQL表作为FIFO/队列 [英] MySQL table as a FIFO/Queue
本文介绍了MySQL表作为FIFO/队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们如何将Mysql表视为有限的FIFO缓冲区(队列).
How can we treat a Mysql table as a limited FIFO buffer (Queue).
目标是:
- 该表一次只能有N行.
- 插入行时,应删除最旧的行以将行数保持为N.
请提出解决方法.
更新: 抱歉,许多人指出,我已将问题从堆栈更改为先进先出队列
UPDATE: Sorry guys, as many pointed I changed my question from STACK to FIFO queue
推荐答案
过去的MySQL 5,您可以使用触发器来实现.
Past Mysql 5 you could use a trigger to achieve this.
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
然后您触发的sql将会关闭:
then your triggered sql would be along the lines off:
DELETE FROM foo WHERE id NOT IN (SELECT id FROM foo ORDER BY id DESC LIMIT 10)
这篇关于MySQL表作为FIFO/队列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文