- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题。我创建了一个数据库(my_database),在其中创建了一个表(成员),并创建了字段(id、name、lastname、address)。 id 字段设置为自动递增。现在我有 5 行,这意味着 id 的值为 1、2、3、4 和 5。当我删除 id 3 时,剩下的是“1 2 4 5”。我的问题是我应该怎么做才能将“1 2 4 5”改为“1 2 3 4”?任何帮助将不胜感激。
更新:我必须执行此操作,因为在我的网站上,我使用循环显示所有成员并访问 ID 号。或者甚至可以获取数据的 id 吗?示例我有以下数据:id=2,lastname=clyde,address=瑞士。如何仅通过姓氏值获取 id 值?
最佳答案
出于多种原因,您确实不想这样做。
首先,如果页面打开,事情可能会出错。假设当您删除 id = 3
条目并按照您的建议更新 id 时,用户位于 id = 4
条目的编辑页面。现在,当编辑者点击提交时,将从他的页面获取 id,并且他将更新新条目 4 而不是旧条目 4。这是一个直率且简单的示例,但除此之外还有更多内容在这个级别可能会出错。
其次,编程时涉及很多工作。首先,您需要更新您的列。然后,您还需要确保 MySQL 知道为下一个条目提供什么数字。然后所有这些都必须在一个环境中发挥作用,确保我们不会遇到上述提到的那么多问题(这是一件非常困难的事情)。与什么都不做相比,这是一项大量的工作。
第三个问题是性能开销巨大。想象一下,有一个包含数千个条目的数据库,然后删除一个低 ID 的条目。突然之间,所有具有较高 id 的条目都必须更新。这很可能意味着您的网站变得没有响应,因为它正在执行此任务并且无法同时处理太多其他任务(事实上,为了确保我们不会遇到第一点中的问题,我们必须确保我们不会同时做任何其他事情(或者确保我们处理数据的不同副本或其他内容),因为我们最终可能会得到整个更新过程中产生的结果。
我的建议与其他人的说法一致:保持原样即可,不用担心这个。 auto_increment
仅用于一个目的:轻松为每个值提供唯一标识符。使用此标识符仅识别和引用同一条目。也许人们还可以对这些标识符进行排序,但最多只能有一定的顺序(即使如此,人们也会不同意它的这种用法)。
我们不应该尝试更新 ids,而应该寻找另一个地方来解决这个问题。如果问题纯粹在于你的感受,那很容易。您可能对此感觉不太好,但您只需要说服自己更新所有这些 id 并不是您正在寻找的解决方案。如果您在其他地方使用这些数字,那么解决问题可能会更复杂一些。然而,总是有可能使用 PHP 为每个条目生成数字,如果这些数字用于生成 html 内容,那么这绝对是这样做的合乎逻辑的地方。如果您提供有关在何处使用序列号的更多详细信息,则可以了解在这种情况下如何解决该问题。
关于php - 删除数据后重新整理数据库中的id字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089706/
当我创建一个数据库时,我被要求选择默认排序规则,当我创建一个表时,我被要求选择排序规则。 utf8_general_ci 或...拉丁...?区分哪个是对的依据是什么? 最佳答案 A collatio
PHP不会检查单引号 '' 字符串中变量内插或(几乎)任何转义序列,所以采用单引号这种方式来定义字符串相当简单快捷。但是,双引号 "" 则不然,php会检查字符串中的变量或者转义
正则(regular),要使用正则表达式需要导入Python中的re(regular正则的缩写)模块。正则表达式是对字符串的处理,我们知道,字符串中有时候包含很多我们想要提取的信息,掌握这些处理字符
在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 ?
]js正则表达式基本语法(精粹): http://www.zzvips.com/article/94068.html 许多语言,包括P
1、首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mo
我更愿意在 R 中执行以下操作,但我愿意接受(易于学习的)其他解决方案。 我有多个(比如说 99 个)制表符分隔文件(我们称它们为 S1.txt 到 S99.txt)和表格,所有文件都具有完全相同的格
我制作了一个小程序,可以使用数学进行物理计算。 我有几个 if 语句,它们做同样的事情,但变量不同,但它们必须是它们,就好像 TextBox 是空的,int 将是 0。 例子如下: if (first
我正在构建需要扩展框的东西 - 这很好,我可以正常工作。然而,如果你看看这个FIDDLE你会看到它有点乱。我希望有一种方法可以扩展它们所在的盒子,这样它们就不会跳来跳去?那么盒子 3 的左侧会比右侧膨
我相当确定(在 MATLAB 中)应该有一个优雅的解决方案,但我现在想不起来。 我有一个包含 [classIndex, start, end] 的列表,我想将连续的类索引折叠成一个组,如下所示: 这个
维基百科将 XMPP 定义为: ...an open-standard communications protocol for message-oriented middleware based on
我的代码库已经进入了某种状态,希望能够摆脱它 repo 看起来有点像这样(A1、B1、C1 等显然是提交) A1 ---- A2 ---- A3 ---- A4 -
如何整理以下数据框 data.frame(a = c(1,2), values = c("[1.1, 1.2, 1.3]", "[2.1, 2.2]")) a values 1
所以我试图在 Haskell 中生成出租车号码列表。出租车号码是可以用两种不同方式写成两个不同立方体之和的数字 - 最小的是 1729 = 1^3 + 12^3 = 9^3 + 10^3 . 现在,我
我正在使用 roxygen2 来记录我正在开发的包的数据集。我知道你可以 use roxygen to document a dataset ,但是Shane's answer最终建议进行黑客攻击,虽
这个问题在这里已经有了答案: How can I combine two strings together in PHP? (19 个回答) 关闭 5 年前。 提前致歉,尽管我已经尝试并失败了几件不
我有一个大部分整洁的数据框,但有 2 列包含基准,而不是将基准合并为观察结果。我该如何整理,以便将“Facility_score”和“TTP”col_names 添加为每个独特的 FYQ 和 Metr
我有以下输入数据。每一行都是一个实验的结果: instance algo profit time x A 10 0.5 y A
我已经使用 PHP 和 MySQL 实现了搜索。目前我的表格整理是 "utf8_unicode_ci"。问题是,使用此排序规则 "ä"= "a" 是。如果我将排序规则更改为 "utf_bin" 一切正
所以我是 JS 和 Jquery 库的新手。我一直在玩弄一些东西,可以看到它非常不整洁,这就是我希望你们能帮助建议一种更好的方法来实现我想要实现的目标的地方。 目标: 要有多个复选框,其中一些如果被选
我是一名优秀的程序员,十分优秀!