mysql - 如何为 mysql 中的字段提供自动编号?

标签 mysql

我想为 MySQL 数据库中的字段提供自动编号?

这就像

我有字段名称,编号

name       number
--------------------
aaaa          1
bbbb          2
cccc          3
dddd          4
eeee          5

现在我想删除第三个字段(即 cccc) 如果我从该表中选择了所有行,则删除后 我想得到这样的输出

name      number
-----------------------
aaaa        1
bbbb        2
dddd        3
eeee        4

谁能为此提供更好的解决方案?

最佳答案

首先:为什么要这样做?看起来您的数字序列通常是一个主键,这意味着 - 数字本身 没有其他含义。因此,您无需担心其中的间隙 - 让 DBMS 为您处理。

如果您仍想重新排列您的号码,您可以这样做:

UPDATE t CROSS JOIN (SELECT @i:=0) AS init SET t.number=@i:=@i+1

-但是,真的,想想这个 - 即如果你真的需要这样做。

关于mysql - 如何为 mysql 中的字段提供自动编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635239/

相关文章:

php - 如何在 MYSQL 中使用 GROUP BY 连接来自另一个表的子行并仅显示一次主行?

mysql - 如何在 mysql 中拆分/反透视 group_concat?

Mysql不在大表上使用索引

mysql - .NET 表单 MySQLConnection 404 错误

c# - 使用相同的 MySQL 连接插入多行?

mysql - 先按最近 3 个月排序,然后按字母顺序排序

mysql - 按日期顺序排序时,“使用临时”会减慢查询速度

java - 无法使用java成功连接到mysql数据库

mysql - 对于用户 "follow"/"friend"其他用户的网站,什么是好的数据库结构?

MySQL dump所有表的结构和部分数据