当我使用下面的查询向表中添加新记录(未知)时,新记录添加到表的第一个。 我想添加新的记录到最后一个表。添加一条记录到最后的表
这是我的代码:
begin
insert into TBLCrowler (Url,Title,ParentId,HasData) values (@Url,@Title,@ParentId,@HasData)
end
当我使用下面的查询向表中添加新记录(未知)时,新记录添加到表的第一个。 我想添加新的记录到最后一个表。添加一条记录到最后的表
这是我的代码:
begin
insert into TBLCrowler (Url,Title,ParentId,HasData) values (@Url,@Title,@ParentId,@HasData)
end
好,一度陷入中断。 您正在使用关系数据库。这不是一张工作表,它不是一个word文档中矩形的单元格阵列。它的力量依赖于能够以最有效的方式存储和检索记录。
订购要么通过声明
如果你想要的东西由他们加入时间排序通过一个指数,该指数的DBMS是可以忽略暗示,并可能无论如何改变,或明确要求通过订单在表中,添加created_at列并在执行插入时填充它。
然后,当您从中选择时,将Order By Created_At
添加到您的选择语句中。
如果你想让这个顺序变得“快速”,你可以在Created_At列上添加一个索引,然后DBMS会勇敢地尝试使用这个索引,以避免全路径排序的代价。
退一步,想一想如何编写DBMS。你隐含的有序性的成本是多少。对“最后”表中的“最后”记录以外的任何更改均意味着将“在”之后的每个表中的每个记录重写到磁盘。插入更糟糕,删除同样糟糕,并且没有考虑到不同的记录会占用不同的空间量。
所以,第一个和最后扔到垃圾桶,如果你能找到他们...
我在这里找到一种方法是我做的 – mohammad
我是所有的耳朵交配,事实上agog。那么你打算怎么做? –
select top 1 CatId, Title, ParentId, Url, CrawlerCheck from TBLCrowler where CatId=(Select min(CatId) from TBLCrowler where CrawlerCheck=1)
update TBLCrowler set CrawlerCheck=2 , HasData=2
where CatId=(Select min(CatId) from TBLCrowler where CrawlerCheck=1)
有“第一”或在关系数据库表中的“最后”行没有这样的事。 –