在现有表上创建序列

2024-04-10

如何在表上创建一个序列,使其从 0 -> 最大值? 我尝试使用以下 SQL 代码,但它不会将任何值插入到我正在使用的表中:

CREATE SEQUENCE rid_seq;
ALTER TABLE test ADD COLUMN rid INTEGER;
ALTER TABLE test ALTER COLUMN rid SET DEFAULT nextval('rid_seq');

我尝试插入序列的表是另一个查询的输出。我不知道在初始查询期间添加序列是否更有意义,或者在执行查询后将序列添加到表中是否更有意义。


添加新列时设置默认值:

create sequence rid_seq;
alter table test add column rid integer default nextval('rid_seq');

更改现有列的默认值不会更改现有数据,因为数据库无法知道应该更改哪些值;列值上没有“此列具有默认值”标志,只有默认值(最初为 NULL,因为您没有指定其他任何内容)和当前值(也是 NULL),但是可以区分“NULL”因为它是默认值”和“NULL,因为它被显式设置为 NULL”。因此,当您分两步执行时:

  1. 添加列。
  2. 更改默认值。

PostgreSQL 不会将默认值应用于您刚刚添加的列。但是,如果您添加列并同时提供默认值,那么 PostgreSQL 确实知道哪些行具有默认值(所有行),因此它可以在添加列时提供值。

顺便说一句,您可能也希望该列上有 NOT NULL:

create sequence rid_seq;
alter table test add column rid integer not null default nextval('rid_seq');

And, as 一匹没有名字的马 https://stackoverflow.com/users/330315/a-horse-with-no-name注意,如果您只想使用rid_seq为您test.rid那么你可能想要设置其所有者列 http://www.postgresql.org/docs/current/static/sql-altersequence.html to test.rid这样,如果删除列,序列就会被删除:

alter sequence rid_seq owned by test.rid;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在现有表上创建序列 的相关文章

随机推荐

  • Angular - 如何使用延迟加载模块激活 AUX 路由?

    我有一个有角度的应用程序正在延迟加载模块 首先 应用程序导航到home它加载模块 名为module1 主要路由 const routes Routes path redirectTo home pathMatch full path hom
  • 编写自定义属性检查器 - 验证值时如何处理就地编辑器焦点?

    Overview 我正在尝试编写自己的简单属性检查器 但我面临着一个困难且相当令人困惑的问题 首先 我要说的是 我的组件并不是要使用或处理组件属性 而是允许向其添加自定义值 我的组件的完整源代码位于问题的更下方 一旦将其安装在包中并从新的空
  • C# 和 Java 中的垃圾收集之间的根本区别是什么?

    最近 我从一位 高级 开发人员 同事那里得到了一些关于 C 垃圾收集器的听起来非常错误的建议 例如 你需要使用析构函数 C 中随处可见 因为垃圾 收藏家不能信赖 C 垃圾收集器不能 就像 Java 垃圾一样 集电极 这对我来说听起来非常可疑
  • 推送通知徽章未到来

    我正在使用此编码进行苹果推送通知 推送通知即将到来 但它们没有任何徽章 任何建议此代码有什么问题 我没有收到徽章 我已经检查了设置选项卡 徽章就在那里 BOOL application UIApplication application d
  • CircleCI Android ConstraintLayout 不起作用

    我现在正在使用CircleCI对于我的项目 我也在实施新的约束布局在我的项目中 现在我被 CircleCI 大楼困住了 它向我展示了这个gradle 依赖项 run File home ubuntu android repositories
  • X 轴垂直线 iOS 图表

    也许这是一个简单的问题 但我想知道如何在 iOS 图表中的 X 轴下绘制垂直线和 X 轴上的标签 见图 如红线所示 更新 我正在使用的库是这个https github com danielgindi ios charts https git
  • 显示 JPanel 调整了另一个 JPanel 的大小

    我有一个关于嵌套 BoxLayout 的问题 我想构建一个由 2 个子面板组成的 DropDownPanel 顶部的标题和底部的正文 身体最初是隐藏的 通过单击标题 您可以切换正文的可见性并显示其内容 例如展开 折叠 一般来说 这工作得很好
  • “cabal install cabal-install”不会更新 OSX 中的 cabal 版本

    我是 haskell 和 cabal 的新手 所以我可能错过了一些简单的东西 我更新了 cabal install sudo cabal install cabal install Password Resolving dependenci
  • 如何使用 Git API 获取 GitHub 存储库的社交预览图像链接?

    我拥有许多 GitHub 存储库 通常每周添加项目 我正在使用 GitHub 页面制作自己的网站 因为我只能在 GitHub 页面上托管静态网站 因此我将使用 GitHub API 来自动更新网站上的新项目 但我还想向其中添加预览 示例图像
  • 无法切换到打瞌睡模式

    我正在遵循这方面的说明安卓页面 http developer android com training monitoring device state doze standby html为了将 android 切换到 doz 模式来测试我的
  • 如何构建增量有向非循环词图来存储和搜索字符串?

    我试图以简洁的方式存储大量字符串列表 以便可以非常快速地分析 搜索它们 有向非循环词图 DAWG 非常适合这个目的 但是 我首先没有要包含的字符串列表 因此它必须是可增量构建的 此外 当我在其中搜索字符串时 我需要带回与结果相关的数据 而不
  • 如何重用现有分支名称作为新分支?

    我的目的是拥有一个开发分支 我可以在其中创建功能分支 这些功能分支将被合并到 dev 分支 然后 dev 分支将被合并回 master 一些我如何搞砸了 我留下了我的开发分支 所以这就是我现在所拥有的 我认为将password rest a
  • 支持 RecyclerView 在触摸之前不显示任何内容

    我在我的应用程序中使用支持 RecyclerView 我看到了最奇怪的事情 在我触摸滚动之前它不会显示任何项目 然后 突然间 RecyclerView 就会自行填充 我已经验证支持适配器的列表已填充 并且 onCreatViewHolder
  • Oracle 11 SQL:有没有办法将 1 行拆分为 x 行

    客户要求将 Oracle DB SQL 中的 1 行拆分为 6 行 比方说 最初的 SQL 具有多个连接的复杂 sql 等 拉入 9 列 从 X Y Z 中选择 A B C D E F G H I 但查询相当复杂 1 A B C D E F
  • 查询中的 Firebase StartAfter 未按预期工作

    我使用 firebase firestore 作为数据库 并且编写了 firebase 函数来从 firestore 数据库检索数据 我想要实现的是分页 根据文档我已经实现了我的 firebase 函数的代码 下面是代码 exports g
  • Python 中的隔离森林

    我目前正在使用以下方法检测数据集中的异常值隔离森林 https scikit learn org stable modules generated sklearn ensemble IsolationForest html在 Python
  • AttributeError:使用 CRF 时“Tensor”对象没有属性“_keras_history”

    我知道关于这个问题有很多问题 我已经阅读了其中的一些问题 但没有一个对我有用 I am trying to build a model with the following architecture 代码如下 token inputs In
  • sys.stdout.flush 在 jupyter 笔记本中不起作用

    所以我只想重新运行此存储库中的代码 https github com dennybritz reinforcement learning blob master MC MC 20Prediction 20Solution ipynb htt
  • 如何正确重写 JacksonAnnotationIntrospector._findAnnotation 以替换元素的注释

    我正在尝试创建一些可由杰克逊序列化的类 我想用标准 Jackson 注释来注释一些元素 让我们考虑一下JsonIgnore对于这个例子 但我希望它们只在我的特定映射器中有效 因此 我决定创建自己的注释 例如标准注释 例如 MyJsonIgn
  • 在现有表上创建序列

    如何在表上创建一个序列 使其从 0 gt 最大值 我尝试使用以下 SQL 代码 但它不会将任何值插入到我正在使用的表中 CREATE SEQUENCE rid seq ALTER TABLE test ADD COLUMN rid INTE