一、數(shù)據(jù)庫規(guī)定主鍵值不能重用的目的是什么
1.主鍵值可以重用。
2.在很多已有的系統(tǒng)中,比如各種開源網(wǎng)站、論壇,由于數(shù)據(jù)庫在設(shè)計(jì)時(shí),業(yè)務(wù)與主鍵值耦合了,這種情況下,重用主鍵值會(huì)讓系統(tǒng)發(fā)生業(yè)務(wù)錯(cuò)誤。比如某查詢是以主鍵是否存在來判定查詢結(jié)果,重用主鍵會(huì)造成誤判。
3.對(duì)于自增主鍵,主鍵值也可以重用,但問題是,如何重用?你會(huì)發(fā)現(xiàn)這非常麻煩。
SQL Server 中的 “自動(dòng)增長列”(標(biāo)識(shí)列 / identity 列),既然是 “自動(dòng)增長”,那當(dāng)然是不能再 “減少” 的了,否則怎么能叫這個(gè)名字呢?好吧,說正經(jīng)的,實(shí)現(xiàn)起來比較簡單,只要記錄當(dāng)時(shí)該列中最大的值且加上一個(gè)步長(默認(rèn)為1)就可以了,否則還得花費(fèi)時(shí)間去搜索那個(gè) “空隙”。尤其是在并發(fā)的情況下,比較容易保證新插入的記錄中這一列的值是正確的。設(shè)置為 “標(biāo)識(shí)列” 的缺點(diǎn)就是,這一列的值只能是整型。另外,只要這一列的值都是整型,那么對(duì)于計(jì)算機(jī)來說占用的存儲(chǔ)空間都是一樣的,并沒有 “浪費(fèi)資源”。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應(yīng)用非常廣泛,舉個(gè)例子,我們平時(shí)在瀏覽器上搜索內(nèi)容,就要用到數(shù)據(jù)庫去檢索我們的關(guān)鍵字。以前我們可能會(huì)用數(shù)組、集合、文件等來存儲(chǔ)數(shù)據(jù),但是接下來我們就會(huì)面臨一個(gè)問題,當(dāng)存儲(chǔ)的數(shù)據(jù)或內(nèi)容過多的時(shí)候,我們?nèi)绾稳ゾ珳?zhǔn)的找到我們需要的東西,這時(shí)候數(shù)據(jù)庫管理系統(tǒng)就派上了用場(chǎng)。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲(chǔ)存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個(gè)概念
DB數(shù)據(jù)庫(database):存儲(chǔ)數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。