Primary key id reaching limit of bigint data type

后端 未结 4 1513
星月不相逢
星月不相逢 2020-12-31 23:18

I have a table that is exposed to large inserts and deletes on a regular basis (and because of this there are large gaps in the number sequence of the primary id column). It

4条回答
  •  误落风尘
    2020-12-31 23:35

    maybe it's bit too late, but you can add trigger in DELETE,

    here is sample code in SQL SERVER

    CREATE TRIGGER resetidentity
        ON dbo.[table_name]
        FOR DELETE
    AS
        DECLARE @MaxID INT
        SELECT @MaxID = ISNULL(MAX(ID),0)
        FROM dbo.[table_name]
        DBCC CHECKIDENT('table_name', RESEED, @MaxID)
    GO
    

    In a nutshell, this will reset you ID (in case it is auto increment and primary). Ex: if you have 800 rows and deleted last 400 of them, next time you insert, it will start at 401 instead of 801.

    But the down is it will not rearrange your ID if you delete it on the middle record.EX if you have 800 rows and deleted ID 200-400, ID still count at 801 next time you write new row(s)

提交回复
热议问题