RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1443978
Accepted
Awake
Awake
Asked:2022-08-30 06:57:14 +0000 UTC2022-08-30 06:57:14 +0000 UTC 2022-08-30 06:57:14 +0000 UTC

是否可以删除 postgreSQL 中使用的初级键?

  • 772

在此处输入图像描述

有一个数据库,其中列 id(主键)记录自动编号。但问题是,例如,如果其中一条记录被删除,那么它所拥有的自动生成的 id 就不能再用于另一条记录了。结果,如图所示,我总共有 6 列,id 已经达到了 21。我可以通过某种方式解决这个问题并将编号返回到 order 中吗?

postgresql
  • 2 2 个回答
  • 43 Views

2 个回答

  • Voted
  1. Best Answer
    eri
    2022-08-30T07:41:07Z2022-08-30T07:41:07Z

    主要问题是'为什么?'...... pk 的含义是它不会在过去重复并且在未来不会相交。

    如果您需要行号,则它们是在选择过程中形成的 - 在左侧的图片中。

    但是,如果你想......那么你可以。在 postgres 中,这些数字是基于唯一索引和作为默认值的外部计数器构建的。展开这些表模式并查看计数器的名称。或者一个团队

    pg_get_serial_sequence('table_name','column_name')
    

    并回答问题

    ALTER SEQUENCE pg_get_serial_sequence('table_name','id') RESTART WITH 3;
    

    这当然会降低新插入的性能,因为有必要在每次插入之前手动检查唯一性约束。

    • 1
  2. Akina
    2022-08-30T12:53:35Z2022-08-30T12:53:35Z

    是否有可能以某种方式解决此问题并按顺序返回编号?

    忘掉它。总的来说,永远不要让这样的想法进入你的脑海。

    主键是表结构中的一种特殊结构。其唯一目的是在表的生命周期内唯一标识一条记录。我特别注意 - 它是表格,而不是记录本身!也就是说,即使该记录被删除,它也不再存在,但它所拥有的主键的值仍然指向当前不存在的该记录。是的,一个不寻常的概念,但它需要被接受和实现。

    一般来说,主键纯粹是服务器内部的事情。在正常情况下,在一种情况下需要获取/查看其值 - 如果您需要确保主键的值没有溢出的危险。

    任何试图为主键的值分配一些附加功能的尝试都是错误的。不用说,如果某样东西执行了几个不同的功能,那么它对所有这些功能的执行都很差。或者,在任何情况下,如果每个功能都由一个单独的、专门为此功能设计的东西来执行,那就更糟了。

    你需要连续编号吗?为其创建一个单独的字段,并注意其中没有“漏洞”。

    • 1

相关问题

  • 表不可见

  • 如何修复 postgresql 堆栈深度限制超出错误?

  • 如何为 PostgreSQL 添加 ENUM

  • PostgreSQL:如何在冲突中执行插入操作?

  • 在哪里可以看到所有 postgre 宏?

  • SQL。将SELECT结果合并为一行,需要将得到的结果替换为可读的结果

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5