首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重新计算一级指标?

如何重新计算一级指标?
EN

Stack Overflow用户
提问于 2011-01-05 16:42:27
回答 3查看 3.5K关注 0票数 5

我在mysql数据库中有一个带有自动增量主键的表。此表中的行会定期删除和添加。因此,结果是最新行的PK值增长非常快,但此表中没有那么多行。

我想做的是用这种方式“重新计算”PK,第一行PK = 1,第二行PK =2,依此类推。这个表的PK没有外部依赖,所以它是“安全的”。

有没有只用mysql查询/工具就能做到的方法?或者我必须从我的代码中去做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-05 16:45:49

代码语言:javascript
复制
set @pk:=0;

update 
  your_table
  set pk=@pk:=@pk+1
  order by pk;       <-- order by original pk

在我看来,拥有一个大的代理键是很好的。您可能不太可能用完所有允许的最大整数。考虑一下,你可以使用unsigned将其加倍。

票数 13
EN

Stack Overflow用户

发布于 2013-11-13 14:52:08

重新计算后,不要忘记更改表格中的AUTO_INCREMENT值:

代码语言:javascript
复制
mysql> SELECT @pk;
+------+
| @pk  |
+------+
| 9911 |
+------+
1 row in set (0.00 sec)


ALTER TABLE your_table AUTO_INCREMENT = 9912;
票数 0
EN

Stack Overflow用户

发布于 2011-01-05 16:48:26

这应该可以解决您的问题:http://www.liewcf.com/mysql-reset-auto-increament-number-115/简而言之:您可以使用ALTER TABLE table_tablename AUTO_INCREMENT = 1。为了将其重置为1,您应该首先从表中删除记录或将其id更改为最低值。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4602156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档