sqlserver數(shù)據(jù)庫主鍵的生成方式小結(jié)(sqlserver,mysq建
導讀:1建站知識嚴格講這三種產(chǎn)生方式有一定的交叉點,其定位方式將在下面進行講解如何seo優(yōu)化推廣網(wǎng)站企業(yè)網(wǎng)站建設。
主鍵的生成方式主要有三種: 一. 數(shù)據(jù)庫自動生成 二. GUID 三. 開發(fā)創(chuàng)建 嚴格講這三種產(chǎn)生方式有一定的交叉點,其定位方式將在下面進行講解。 第一種方式,主要將其定位在自增長的標識種子:可以設置起始數(shù)值,及增長步長。其優(yōu)點在于使用時完全將并發(fā)任務交于數(shù)據(jù)庫引擎管理,你不用擔心存在多用戶使用的時候會產(chǎn)生兩個相同的ID的情況。其缺點也在于此,多數(shù)的數(shù)據(jù)庫不提供直接獲取標識ID的方式,對于開發(fā)人員來說產(chǎn)生ID的方式是透明的,開發(fā)人員幾乎無法干預此項。對于數(shù)據(jù)的遷移也不是很方便。 由于存在上面的利弊,這種自增長的ID一般多用于設計基礎表(系統(tǒng)運行的基礎信息,如員工表)主鍵,而極少(根本不)用于主從表主、外鍵,因為在產(chǎn)生主從表數(shù)據(jù)并關(guān)聯(lián)時,必須確定主表的ID,然后才能定位從表的關(guān)聯(lián)ID。 例(MsSQL):
復制代碼 代碼如下:
--創(chuàng)建測試表 CREATE TABLE [Identity]( Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--種子的起始值1,步長2 Number VARCHAR(20) UNIQUE NOT NULL, Name VARCHAR(20) NOT NULL, Password VARCHAR(20) DEFAULT(123), Description VARCHAR(40) NULL ) --插入記錄 INSERT INTO [Ident百度seo網(wǎng)站優(yōu)化ity](Number,Name,Description) VALUES('001','1st','Id=1,因為起始值1') INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因為起始值1,步長2') INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符長度超長,報錯插入失敗,造成此Id產(chǎn)生后被放棄') INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因為第三條記錄插入失敗') --檢索記錄,查看結(jié)果 SELECT * FROM [Identity]
結(jié)果: (1 行受影響) (1 行受影響) 消息 8152,級別 16,狀態(tài) 14,第 3 行 將截斷字符串或二進制數(shù)據(jù)。 語句已終止。 (1 行受影響) (3 行受影響) Id Number Name Password Description 1 001 1st 123 Id=1,因為起始值1 3 002 2nd 123 Id=3,因為起始值1,步長2 7 004 4th 123 Id=7 not 5,因為第三條記錄插入失敗 第二種方式,GUID即Globally Unique Identifier,也稱為UUID(Unive網(wǎng)站seo優(yōu)化培訓rsally Unique IDentifier),全球唯一標識符,GUID一般由32位十六進制的數(shù)值組成,其中包含網(wǎng)卡地址、時間及其他信息。任何兩臺電腦都不會產(chǎn)生相同的GUID,他的優(yōu)點在唯一性,當需要數(shù)據(jù)庫整合時,能節(jié)約不少勞動力。比如總公司和分公司各自系統(tǒng)獨立運行,所有分公司數(shù)據(jù)定期需要提交到總部,可以避免合并數(shù)據(jù)時主鍵沖突問題,同時GUID還兼具自增長標識種子特點,無需開發(fā)人員太多的關(guān)注。但是GUID信息量大,占用空間也大,關(guān)聯(lián)檢索時,估計效率上也不是很高,對于32位的十六進制其可讀性也差,雖然主鍵有對用戶的無意義性,但是在設計或者調(diào)試交流時很不方便。 從長遠考慮,為了保證數(shù)據(jù)的可移植性,一般還是會選擇使用GUID來作為主鍵。 例(MsSQL):聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章sqlserver數(shù)據(jù)庫主鍵的生成方式小結(jié)(sqlserver,mysq建主要講述小結(jié),主鍵,sqlserver數(shù)據(jù)庫主鍵的生成方式小結(jié)(s網(wǎng)站建設源碼以及服務器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_5938.html