程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 如何在任意位置插入記錄?

如何在任意位置插入記錄?

編輯:關於Access數據庫
如何在任意位置插入記錄?
我們平時使用 ado的 recordset.addnew或者用 sql語句 insert into...來添加數據的時候,記錄總是被添加在表的最後一行,如何才能把記錄插入到其中某條記錄的前面那?
為什麼我明明在最後一條添加記錄,但是添加以後,我新增的那條記錄卻跑到中間去了?回答:

注意,JET DB 中本來就無法控制新增記錄的存放順序問題,JET DB 有內置的管理方法,這種管理方法目前也沒有公開的詳細資料敘述過。

一般情況下有順序是因為你在新建表的時候就已經新建了 INDEX 索引(比如,自動增長的主鍵ID),所以顯示的時候默認會按主索引來排列。如果你沒有新建過主鍵ID,那麼就可能出現新增記錄亂跑的現象了。

     我們先要來看一下顯示記錄的時候是如何操作的。一般,我們都使用自動編號字段來表示某條記錄的唯一性(一般名字叫 id),而 select * from table order [id] 就是按添加的順序來顯示記錄。
    好了,知道了記錄如何顯示,我們就可以自己控制了,我們可以再添加一個字段,字段名字叫 orderid ,類型為長整型。當要在尾部添加記錄的時候,我們用

INSERT INTO table (orderid) SELECT max(orderid)+1 FROM table

來做。當要在中間某條記錄之前插入記錄時,我們要做的就是先取得這條記錄的 orderid,然後用

update table set orderid = orderid+1 where orderid >= 取得的orderid
insert into table (orderid) values(取得的orderid)

在顯示的時候,如果要按照自己的順序排列,就可以用 select * from table order by orderid

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved