數據庫主鍵的自動增長之總結


  糾結了好久,不知道數據庫主鍵該如何使用,進行數據庫插入操作時,不知道怎么使處於主鍵的列自動進行增長,下面簡單介紹一下,【SqlServer 2008數據庫軟件使用sql語句創建表的相關事項】主鍵的自動增長:

方式一:

設置“主鍵”的sql語句:primary key

標識符:使得進行數據庫表插入操作時,使主鍵自動增長,語句是:identity(1,1)

1、使用sql語句進行創建表:

create table student(
    id int identity(1,1) primary key,//主鍵的設置,還有主鍵的自動增長
    sid varchar(40) not null,
    sname varchar(30) not null
)

執行一下:創建表成功

創建自動增長的主鍵表的具體方式:

詳見:http://www.cnblogs.com/joeblackzqq/archive/2011/01/24/1943584.html

然后進行插入操作:

insert into student (id,sid,sname) values ('232','哈哈')//或者insert into student (id,sid,sname) values (1,'232','哈哈')
//上面的兩種插入語句都不可以,都會報錯的,因為id是主鍵,不能為空;是標識符,不需要插入這列的數據,系統會自動的添加數據列的數據。

//所以,正確的寫法是:
insert into student (sid,sname) values('2020','gaga')
得到的結果就是:

方式二:

項目中,每個表中都會有好多個字段名,為了使讀效果增加,一般都會增加主鍵,然后主鍵自動增長(只是起到一個計數的作用而已),這就會省很大的事。

在設計表的時候就需要增加“主鍵”且還需要“標識列”,這樣子在進行插入操作的時候就可以直接將其字段名省略掉;

比如:

  注意一:在編寫sql語句時:其中flowId是主鍵,其他的都是普通的字段名    【sql語句中是沒有flowId字段名的;】

  insert into dbo.Hishop_OrderRetuenFlow (RetuId, OrderId, LinkMan, LinkTel) 
  values (#retuid:VARCHAR#, #orderid:VARCHAR#, #linkman:VARCHAR#, #linktel:VARCHAR#)

  注意二:在進行插入操作時,寫url路徑時,其中插入的字段的值,也不需要寫主鍵的【易錯點】

  注意三:在進行前后台交互時,也不需要對此字段名進行命名或賦值什么的

 方式三:

在創建不同類型的數據庫,也會有不同的設置“主鍵、且主鍵自動增長”的方式:  如下

  其中Mysql數據庫創建主鍵且主鍵自動增長時,可以直接對字段設置;然而Oracle數據庫則不行,需要使用sequence(序列),實現主鍵的自動增長;

詳細見:http://blog.csdn.net/java3344520/article/details/4907591,{在oracle下觸發器實現主鍵自增}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM