删除除最后10行以外的所有行?或最大行数= 10?

时间:2019-06-10 15:27:55

标签: mysql sql

我有一个小问题。如果您有数据库,是否可以只保留表中最后插入的10条记录?还是您的表只能容纳10条记录,所以当插入新记录时,它会添加它,但会删除最后插入的记录?

我正在使用mySQL和PhpMyAdmin。

2 个答案:

答案 0 :(得分:1)

您可以使用触发器来做到这一点。

我不建议您实际这样做。删除记录会有开销。相反,您可以只创建一个视图,例如:

create view v_table as
    select t.*
    from t
    order by insertionDateTime desc
    limit 10;

这似乎很昂贵,但是在索引(insertionDateTime desc)上,性能应该是合理的。

答案 1 :(得分:0)

这是一种方法:

[0.001s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/usr/local/Cellar/cassandra/3.11.4/libexec/logs/gc.log instead. intx ThreadPriorityPolicy=42 is outside the allowed range [ 0 ... 1 ] Improperly specified VM option 'ThreadPriorityPolicy=42' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

假设delete from my_table where id not in (select id from my_table order by id desc limit 10);是一个数字字段,该字段在每次插入时都会递增。时间戳也可以。