在 SQL 中限制行 a table 并在顶部插入新行

Limit row a table in SQL and Insert new rows on Top

我有一个 SQL 服务器数据库 table : History_KH
它看起来像:

现在我想限制这个 table 的行数(例如:200 行)
当我从代码中插入新行时,它将插入到 table 之上。这意味着:在数据库 table 之上插入新行,超过 200 个计数的旧行将被删除。
请支持我。

您不能真正限制 table 固定数量的记录,但您可以删除不需要的记录。假设您在 SQL-Server

--STEP1 :Do your insert here

--STEP2: Delete older records over 200 ordering by dateTime column
;WITH CTE AS (

  SELECT *, ROW_NUMBER() OVER (ORDER BY DateTime DESC) rn 
  FROM YourTable
)
DELETE CTE WHERE rn > 200

您甚至 post 不知道您使用的是什么数据库。我假设 mysql.

假设您想按日期时间排序并且用户名是唯一的,请使用此更新...

update `History_KH` set `Username` = $myUser, `Datetime` = $myDatetime,
`Datechange` = $myDatechange, `Value` = $myValue where `Username` in 
(select `Username` from `History_KH` order by `Datetime` limit 200)