當前位置:首頁 » 編程語言 » sql自增id
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql自增id

發布時間: 2022-02-04 20:29:58

A. 資料庫如何設置主鍵(ID)自動增長啊(sql語句)

在創建表的時候可以設置,方法如下,用一下sql語句。
createtabletableName(
idintidentity(1,1)primarykey,
datavarchar(50))

解釋:其中identity(1,1)代表自增,第一個1代表從1開始計數,第二個1代表每次增長1。

(1)sql自增id擴展閱讀:

SQL全名是結構化查詢語言[1](Structured Query Language),是用於資料庫中的標准數據查詢語言,IBM公司最早使用在其開發的資料庫系統中。1986年10月,美國國家標准學會(ANSI) 對 SQL 進行規范後,以此作為關系式資料庫管理系統的標准語言 (ANSI X3. 135-1986),1987年得到國際標准組織的支持下成為國際標准。不過各種通行的資料庫系統在其實踐過程中都對 SQL 規范作了某些編改和擴充。所以,實際上不同資料庫系統之間的SQL不能完全相互通用。

參考資料:

網路-SQL語言

B. sql自增id怎麼寫 並且設置成為主鍵

主鍵欄位 int identity(11,1) primary key

這樣就可以了。

主鍵只能有1個,可以是一個欄位,也可以是多個欄位組合的。

C. sql server中如何實現自增欄位

1、主鍵自增,以及建表的語句如下:

CREATE TABLEIF NOT EXISTS `t_email_notice` (

`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,`send_time` INT (16) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中 `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,這句話表示設置id欄位字增,類型為int

2、varchar類型的主鍵,不會自增。但是你可以通過創建觸發器的形式,來實現自增。代碼如下:

CREATE TRIGGER `T` BEFORE INSERT ON `user`FOR EACH ROW begin

set new.id=concat('SH',lpad(((SELECT substring(id,3,4) from user where id=(select id from user order by id desc limit 1))+1),4,0));

end;

這段語句的意思是,當user表中新插入一條一條語句,會觸發『觸發器T』將以』SH『開頭的id欄位自增+1。

(3)sql自增id擴展閱讀

sql語句建表規則如下:

create table 『表名』 (『欄位1』 type1 [not null] [primary key] identity(起始值,遞增量),『欄位2』type2 [not null], ...)--primary key為主鍵 identity表示遞增數量。

D. sql server怎麼獲取自增的id值

SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內的最後一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當前會話中任何作用域內的最後一個 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和會話的限制,而受限於指定的表。

E. 如何得到SqlServer的自增ID

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY

IDENT_CURRENT 不受作用域和會話的限制,而受限於指定的表。

IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。

SCOPE_IDENTITY 和 @@IDENTITY
返回在當前會話中的任何錶內所生成的最後一個標識值。

但是,SCOPE_IDENTITY 只返回插入到當前作用域中的值;@@IDENTITY
不受限於特定的作用域。

例如,有兩個表 T1 和 T2,並且在 T1 上定義了 INSERT 觸發器。

當將某行插入 T1 時,觸發器激發,並在 T2 中插入一行。

該方案演示了兩個作用域:在 T1 上的插入,以及在 T2 通過觸發器的插入。

假設 T1 和 T2 都有標識列,@@IDENTITY 和 SCOPE_IDENTITY 將在 T1 上的
INSERT 語句結束後返回不同的值。

@@IDENTITY 將返回在當前會話中的任何作用域內插入的最後一個標識列的值。

這是在 T2 中插入的值。

SCOPE_IDENTITY() 將返回在 T1 中插入的 IDENTITY 值。

這是在同一個作用域內發生的最後的插入。

如果在任何 INSERT 語句作用於作用域中的標識列之前調用 SCOPE_IDENTITY()
函數,則該函數將返回 Null。

如果語句和事務失敗,它們會更改表的當前標識,從而使標識列中的值出現不連貫現象。

即使未提交試圖向表中插入值的事務,也永遠無法回滾標識值。

例如,如果因 IGNORE_DUP_KEY 沖突而導致 INSERT
語句失敗,表的當前標識值仍然會增加。

F. sql 設置主鍵 自動增長

Alter table tabname add primary key(col) 設置主鍵
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('表名') AND is_identity=1自增列應該是這樣

G. sql server建表時怎麼設置ID欄位自增

sql server建表時設置ID欄位自增的方法有兩種:

1 、在SQL Server Management Studio中實現SQL Server自增欄位

打開SQL Server Management Studio,打開資料庫之後,在選中的表上點「修改」,在選中需要設置為自增的欄位,在右下方的表設計器里選擇「標識規范」,選「是」,就設定即可。

2、使用SQL語句在程序或者查詢分析器裡面實現SQL Server自增欄位

sql server 設置自增欄位identity屬性 (以新建數據表tablename中的id欄位為例)

createtabletablename

(

idintidentity(1,1) //identity表示自增列的意思,而int identity(1,1)表示從1開始遞增,每次自增1。

)

這樣設置之後,tablename數據表中的id欄位就是自增列。

如果想實現帶前綴或者後綴的自動增加欄位,不能用varchar,還是使用上面的方法創建欄位,但是在讀取的時候用增加前後綴的形式來顯示想要的效果,例如如果希望得出結果是a001可以這么做select 'a'+convert(varchar(20),id) from tablename,這里的tablename是剛才建立的具體的表明。

H. id自增 sql語句怎麼寫

mysql的
create table t_user(
id int primary key auto_increment
)

oracle的
CREATE SEQUENCE user_sequence
INCREMENT BY 1 -- 每次加幾個
START WITH 1 -- 從1開始計數
NOMAXVALUE -- 不設置最大值
NOCYCLE -- 一直累加,不循環
CACHE 10;

一旦定義了user_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的當前值
NEXTVAL=增加sequence的值,然後返回 sequence 值

INSERT INTO t_user VALUES
(user_sequence.nextval);

I. SQL Server中怎樣設置id號自動增長

createtable表名--第一種用sql建表identity(1,1)為每次遞增1位primarykey為主鍵
(
idintidentity(1,1)primarykey
)

--第二種用設計器來操作
--滑鼠對准你需要操作的表名右擊=>設計=>
選中你需要操作的列名然後在下方有一個列屬性=>選擇標識規范=>
將標識增量此選項選為(是)下面有一個標識種子默認為1(每次遞增1,可修改)

J. sql 字元串型ID 如何自增

資料庫中的ID自增只能用int。
如果你想用字元串並自增,得自己在程序中插入數據的時候進行控制。