Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置MySQL表中每个用户ID的最大条目数_Php_Mysql_Sql - Fatal编程技术网

Php 设置MySQL表中每个用户ID的最大条目数

Php 设置MySQL表中每个用户ID的最大条目数,php,mysql,sql,Php,Mysql,Sql,假设我有下表 //table user_update update_id | userid | update_message | timestamp 有没有办法设置每个用户ID的最大条目数?我想在用户输入5个更新后,再输入更多更新,就会删除最旧的更新。我知道如何通过PHP实现这一点,只是好奇是否有任何方法仅通过MySQL实现这一点。这实际上是可能的。但如果你真的想这样做,这是值得怀疑的 阅读一些关于“触发器”的内容。当满足某些条件时,可以使用触发器启动操作。这样,您可以

假设我有下表

//table user_update
update_id   |   userid   |   update_message   |   timestamp

有没有办法设置每个用户ID的最大条目数?我想在用户输入5个更新后,再输入更多更新,就会删除最旧的更新。我知道如何通过PHP实现这一点,只是好奇是否有任何方法仅通过MySQL实现这一点。

这实际上是可能的。但如果你真的想这样做,这是值得怀疑的


阅读一些关于“触发器”的内容。当满足某些条件时,可以使用触发器启动操作。这样,您可以对该表上的每个
insert
操作触发
delete
操作。然后剩下的就是保留最多五个条目的条件

我能想到的在数据库端执行此操作的唯一方法是在表上使用
触发器。也许是这样的:

CREATE TRIGGER check_for_too_many_rows
AFTER INSERT ON User_Update
FOR EACH ROW BEGIN
   DO SOME LOGIC TO CHECK THE COUNT AND DELETE IF MORE THAN 5...
END;
以下是一些附加信息:


祝你好运。

嗯,似乎用PHP做起来更快。谢谢你的信息,我还是会去看看的。我很可能会同意,这取决于你的需要。数据是否可以手动或在其他进程(非PHP)中添加到表中?如果是这样,触发器是确保数据准确性的最佳方法(每个用户不超过5行)。如果不是,那么是的,PHP的工作原理也一样。祝你好运。创建一个包含10行的表并更新最旧的。