我有一个 SQL Server数据库表:History_KH
它看起来像:
现在我想限制此表的行号(例如:200行)
当我从代码插入新行时,它将插入到表的顶部。这意味着:在数据库表的顶部插入新行,将删除超过200个计数的旧行
请支持我
答案 0 :(得分:3)
您无法真正限制表格来修复固定数量的记录,但您可以摆脱不需要的记录。假设您使用的是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
答案 1 :(得分:2)
您甚至没有发布您正在使用的数据库。我假设是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)