php - 限制mysql中的表大小,并在插入新行(超出限制)时删除行#1

标签 php mysql pdo insert limit

我已经寻找过这个问题的答案,但还没有找到。如果已经在某处得到答复,我深表歉意。

这是我的情况:

我的 MySQL 数据库中有一个表,我希望将其限制为 150 行。如果在达到限制后插入新行,我想删除第 1 行,然后插入新行。

我正在使用 PHP 和 PDO,如果这很重要的话。

我觉得这是一个简单的问题,如果这是一个完全菜鸟的问题,我很抱歉。我对此还比较陌生,我只是想学习。

任何人都可以为我指明正确的方向,或者解释一下我将用于此类操作的语法吗?

预先感谢您的宝贵时间!

最佳答案

您可以计算表中的行数:

SELECT COUNT(*) FROM <table>

然后,如果该数字已达到您的限制,您可以删除一行:

DELETE FROM <table> ORDER BY <column> LIMIT 1;

最后添加新行。

是的,这三个步骤,这就是 MySQL 的工作原理。

当多个用户访问表时,这可能会变成梨形,更好地使用事务并锁定表。

我认为需要另一种方法。这不是您应该对数据库执行的操作。更好的解决方案是在检索行时限制它们:

SELECT * FROM <table> ORDER BY <column> LIMIT 150

这样您只检索 150 行,这也应该可以解决您的问题。在代码中的某处添加无害的 DELETE,如下所示:

SELECT COUNT(*) FROM <table>
DELETE FROM <table> ORDER BY <column> LIMIT <count-200>;

或者它的任何变体...基本上删除旧的行。

关于php - 限制mysql中的表大小,并在插入新行(超出限制)时删除行#1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450676/

相关文章:

mysql - x-devapi 无法连接到 Google 应用程序引擎中的数据库

php - PDO 未在数据库中插入数据

php - 如何从 Magento 系统配置中获取数据

php - 是否可以将数据类型从字符串更改为日期

MySQL/Rails - 根据每条记录的属性动态查询表字段

mysql - 大容量静态分析数据的最佳存储引擎

php - 更新数据库前检查变量类型 | PHP

php - 通过 PDO PHP 统计前 10 篇文章访问者

php - 有没有适用于任何 Linux 操作系统版本的 php-pgsql 软件包?

php - 如何使用 codeigniter 登录 facebook