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種方法
truncate table 『你自己的表名稱』
--刪除該表所有的數據
刪除該表重新建
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)
這樣就可以了!