Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
限制MySQL DB表中插入的行数_Mysql_Database_Triggers - Fatal编程技术网

限制MySQL DB表中插入的行数

限制MySQL DB表中插入的行数,mysql,database,triggers,Mysql,Database,Triggers,我需要限制插入数据库表中的行数 我想实现一个逻辑来检查执行新插入时是否达到限制:如果达到最大记录数,我将删除表中最旧的记录 我尝试按照建议使用触发器实现此功能,但出现了一个错误: ERROR 1442: 1442: Can't update table 'tableName' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

我需要限制插入数据库表中的行数

我想实现一个逻辑来检查执行新插入时是否达到限制:如果达到最大记录数,我将删除表中最旧的记录

我尝试按照建议使用触发器实现此功能,但出现了一个错误:

ERROR 1442: 1442: Can't update table 'tableName' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
那么我如何实现这一点呢


注意我正在使用MySQL v5.7.25

详细说明我的评论,为什么不填写表格,然后只执行更新

例如


在存储的函数或触发器中,不允许修改调用函数或触发器的语句已在使用(用于读取或写入)的表

MySQL不允许这样做,请参阅 所有其他主要的DBMS都支持此功能,所以希望MySQL很快会添加此支持

在这种情况下,你可以用你喜欢的方式务实地处理这个问题

Before insert data just check total number of row of that table. If reach rows limit, then call delete method. 

为什么不填写表格,然后只执行更新?@草莓,请你在回答中详细说明一下?
Before insert data just check total number of row of that table. If reach rows limit, then call delete method.