为自增字段设置起始值的存储过程
Posted
技术标签:
【中文标题】为自增字段设置起始值的存储过程【英文标题】:Stored proceedure to set start value for autoincrement field 【发布时间】:2012-07-27 07:37:08 【问题描述】:我是 mysql 的新手。我想要一个用于以下功能的用户定义函数。我有一个表,它的 rowid 列具有 UNIQUE、AUTO-INCREMENT、NOT NULL 值。当表有 100 行时,下一个 id 值默认设置为 101。但是当我删除 50 行,然后添加新行时,它又是 101 而不是 51。如何创建和调用根据当前 no 更新值的函数rows.Plz 给出完整的函数代码以及在表中删除某些行时如何调用它。
【问题讨论】:
【参考方案1】:你可以试试下面的:
SET @count = 0;
UPDATE `tblName` SET `id` = @count:= @count + 1;
但是,我确实认为不建议重复使用已删除的行自动增量 ID,因为自动增量字段不是为此目的而设计的。这一点尤其重要,因为 id 字段可能用作与其他表相关的外键。
【讨论】:
好的,但是我没有使用 rowid 作为外键,只是希望表中的行的顺序计数具有正确的行数,只需使用唯一 id 即可轻松删除行。跨度>以上是关于为自增字段设置起始值的存储过程的主要内容,如果未能解决你的问题,请参考以下文章