在 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)
我有一个 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)