限制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.