【问题标题】:When something is deleted in a database how do you change the other records so that the id of the records change当数据库中的某些内容被删除时,如何更改其他记录以使记录的 id 更改
【发布时间】:2015-12-29 01:28:19
【问题描述】:

我如何确保当数据库中的某些内容被删除时,记录的 id 会发生变化,以便我得到一个连续的、连续的 id 集合,例如我有一个 ID 为 1 的记录和另一个 ID 为 2 的记录和另一个 ID 为 3 的记录,当删除 2 时,如何确保记录“3”的 ID 现在为“2”。

【问题讨论】:

  • 如果id 是你不应该的主键。
  • 你为什么要这个?它是一个键、序列、顺序、跳过数字,这些都不重要......
  • 可以做到,但这是最不明智的。最好说出你为什么需要/想要这样做
  • 为什么不让查询返回 rownum 值或类似的东西,因为您使用 mysql 之类的...SET @rownum:=0; SELECT @rownum:=@rownum+1 AS rownum, * FROM tab;

标签: mysql css database record


【解决方案1】:

您通常不需要,特别是如果这是一个主键,如果它被用作外键则更是如此(那么您将需要在 在任何地方被引用时更改它)。

你的桌子上有“洞”根本不是操作问题。

【讨论】:

    【解决方案2】:

    $deleted_id 为您删除的记录的ID。

    UPDATE yourtable SET id = id - 1 WHERE id > $deleted_id
    

    但请注意,您还必须更新所有对您的 ID 的引用(如果存在)。

    【讨论】:

      【解决方案3】:

      您不应该对主键执行此操作,因为它会影响已连接表中的其他记录。

      也许如果您有特定的理由这样做,那么我们可以提供帮助?

      【讨论】:

      • 好吧,我想在一个字段中存储一个 img src,然后我想显示三个图像并排,为此我正在查询表以调用变量的 img src ( 1) (2) 的另一个变量和 (3) 的另一个变量当单击“下一步”按钮时,查询将获取所有变量的 img src 加一。这样好吗?
      • 我们必须查看您使用的一些代码,但总有另一种方法可以做事。你肯定不想像你建议的那样更新你的记录。
      猜你喜欢
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      相关资源
      最近更新 更多