簡體   English   中英

在數據庫表中的舊記錄之后插入新記錄

[英]insert a new record just after a old record in a database table

這可能嗎?

例如:

record1
record2
record3

我想在record1之后插入record4

數據庫表(我假設是關系數據庫表)表示無序的記錄集。 沒有秩序,就沒有“之后”的概念。 所以不,這是不可能的。

要添加到abl的正確答案中,如果您實際上希望“記錄4”出現在“記錄1”之后,並且有一種方法可以實現,那么您需要將ORDER BY語句應用於SELECT查詢,並可能使用索引以提高效率。

例如:如果您的所有記錄都包含數字“雇員ID”,並且您插入4條記錄,如下所示:

Rec#1:1234弗雷德·史密斯
Rec#2:1240愛麗絲博客
Rec#3:1260比爾·布萊斯
Rec#4:1239艾瑪·吉布斯

然后,盡管數據庫以這種方式“存儲”它們,而沒有任何其他指令(例如:ORDER BY),SQL甚至不保證按此順序返回它們!

所以

SELECT EmpID, EmpName FROM EmpTable 

每次您運行命令時,都可能以任何順序為您提供這些記錄。 實際上,在不添加或更改這些記錄的情況下,您很可能每次都看到相同的訂單, 但是您不能指望它!

要以EmpID順序取回記錄,請使用:

SELECT EmpID, EmpName FROM EmpTable ORDER BY EmpID  

如果您有大量記錄,請添加索引以提高性能。 (盡管如此,無論如何它都應存在以確保主鍵(EmpID)的唯一性,即:確保您不能有兩個具有相同ID的雇員。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM