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

刪除自增列sql

發布時間: 2023-01-05 07:53:20

1. sql 表的主鍵是自增序列,如何解決刪除的id...

沒有必要,不連續就不連續。干嗎必要連續。
ID本來就是作為數據的唯一標識用的,只要是唯一的就行,連不連續無所謂。
因為如果連續的話,那麼你每次刪除數據都要進行ID重新排列,這樣當數據較多時,會嚴重影響速度,所以大家都不這樣作。

2. sql 裡面 我有三個列 其中ID是自增 但是當我刪除其中一條數據時

把數據導出到別的表備份(可以用select * into 備份表名 from 表名),然後
truncate table 表名
再把數據塞回來(注意ID不要寫在insert 語句里)
insert into 表名(欄位1,欄位2 ) select 欄位1,欄位2 from 備份表名
再drop刪除掉備份表即可

3. sql刪除自增長主鍵

有3種方法

  1. truncate table 『你自己的表名稱』

    --刪除該表所有的數據

  2. 刪除該表重新建

  3. dbcc checkident(『你的表名稱』, reseed, 1)

4. sql中自增列 id,刪除其中一個 ,如何查找被刪除的行

CREATETABLE#test(
idintidentity(1,1),
valint
);

INSERTINTO#testVALUES(101);
INSERTINTO#testVALUES(102);
INSERTINTO#testVALUES(103);
INSERTINTO#testVALUES(104);
INSERTINTO#testVALUES(105);
INSERTINTO#testVALUES(106);
INSERTINTO#testVALUES(107);
GO

SELECT*FROM#test
GO

idval
----------------------
1101
2102
3103
4104
5105
6106
7107

(7行受影響)


DELETEFROM#testWHEREid=2;
DELETEFROM#testWHEREid=5;
DELETEFROM#testWHEREid=6;
GO


SELECT
M.number
FROM
#testtRIGHTJOINmaster..spt_valuesM
ON(M.number=t.id)
WHERE
M.type='P'
ANDM.number>0
ANDM.number<=(SELECTMAX(id)FROM#test)
ANDt.idisnull
GO

number
-----------
2
5
6

(3行受影響)

5. SQL自增欄位,有數據刪除後,如何實現自增欄位的連續

對於自增欄位確實有這個問題,也無法改變,這是由於自增欄位的值是內部計算,每使用一次都會自動+1,有點類似線序,你可以使用如下兩種方法解決:
1、自增欄位改為不用手工增加,每次都取最大值+1來存儲
2、不改自增欄位類型,採用邏輯刪除的方法,比如在表中增加一個欄位isdel(1表示已刪除,0或者其它值表示沒有刪除),記錄當前記錄是否屬於刪除狀態,

6. 在mysql中,主鍵自增怎麼去掉

比如說 test表的id列自增,刪除自增的sql如下
alter table test change id id int;

7. sql 自增列刪除

當你插入的時候,自增列的數據可以用SQL語句獲得,比如你插入的時候自增列插入的數為:
declare @add int
select @add=count(*)+1 from 表名
insert into 表名(自增列) values(@add)
這樣就可以了!