mysql - 使主键 id 始终与行号同步

标签 mysql

一旦我将此列设置为主键自动增量,那么它每次都会将“id”增加1,即使我删除了前面的行,所以第一行id可能以4或40开头,但我希望id总是可以与行号一起使用,我怎样才能在 mysql 中做到这一点?

最佳答案

您不能也不想做您所要求的事情。主键,尤其是当它只是像“1”、“2”、“3”这样的代理键时,主要与其他表相关时很重要。即表b需要将其外键指向table_a的主键。

现在,如果您能做到您所要求的,会怎样? table_a 中有两行,分别具有 PK 1 和 2。无论出于何种原因,您都会删除第 1 行。如果 table_a 中曾经是第 2 行的行将其 PK 更改为 1,则拥有 table_a 外键的所有其他表现在都会损坏。无论发生什么情况,您都需要它来保留主键。

如果您想查看数据的有序 View ,可以使用 ORDER BY 子句。不过,对于您删除的任何行,您的 PK 中仍然会有漏洞,并且您希望它是这样的。

关于mysql - 使主键 id 始终与行号同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713084/

相关文章:

PHP MySQL 将用户表加入多列和多行

python - Raspbian 上的 MySQL+Python 产生语法错误

mysql - SQL交叉连接中的重复对?

php - 无限滚动错误,重复接下来的 10 条记录而不是填充更多记录

php - Zend 框架在表单中显示要更新的数据库条目

php - 我需要在 schema.xml 中编写什么才能在 Solr 中的两个或多个字段中进行搜索?

mysql - SQL 如何按 "Ranges"排序

mysql - 无法使用 Doctrine 和 Symfony2 在 MySQL 中创建表

mysql - 在 Ruby on Rails 中执行 SQL 文件以导入数据库

java - 尝试从Android应用程序将文件上传到xampp服务器时找不到文件异常