当前位置: 首页 > 知识库问答 >
问题:

如何在postgres上插入带有序列的新记录

狄旻
2023-03-14

我有一个表'new_table',序列id作为主键。如何使用其他表中的数据向其插入新记录。我试过:

insert into new_table ( 
(select (select NEXTVAL('my_sequence')),a,b,c from old_table)
);

但是得到了

重复的键值违反唯一约束详细信息:Key(id)=(...)已经存在。

共有1个答案

封锐藻
2023-03-14

>

insert into new_table(a、b、c)从旧_table中选择a、b、c

如果默认值设置为nextval,则不必手动执行。

从新表格中选择max(id)

如果是,则使用新的Cell重新启动序列,如:

alter sequence my_sequence用1999重新启动 或最大值是多少

 类似资料:
  • 问题内容: 我遵循“ 是否可以编写数据类型转换器来处理postgresJSON列”中的答案? 实现nodeObject转换器。 然后,我尝试使用可更新的记录来插入一条记录,但出现了 “ org.jooq.exception.SQLDialectNotSupportedException:方言POSTGRES不支持类型为org.postgresql.util.PGobject的类”。 我该如何解决?

  • 问题内容: 我有这个SQL表 而且我想从临时表中复制记录,包括NoteID(使用sql查询)。 这是我的脚本: 使用此脚本,我得到一个错误: 还有其他方法可以使用sql查询将记录插入带有身份列的表中吗? 问题答案: 左右更改开和关

  • 问题内容: 我想进行批量插入事务,但是我不太确定如何使用CTE或更有效的方法来执行此操作。这是我到目前为止的内容: 我的CTE的问题是我不知道如何从要插入的第一条插入语句中获取单个ID到第二条具有“ product_id”外键的语句的相应记录中。 我将如何构造该语句以使其起作用?我对其他解决方案持开放态度,这些解决方案提供了更有效的方法来实现相同的结果。 问题答案: 以下是您要做什么的合理解释:

  • 问题内容: 我有一个列表,例如:thing1,thing2,thing3。我想将它们插入具有相同外键的查找表中。因此理想情况下,它看起来应该像这样: 看来完成此操作的唯一方法是将列表转换为查询,但是我想知道,是否有更简单的方法? 这是我尝试过的: 我听说您无法在cfquery中执行cfloop,但是我什至不确定这是否成立,因为VALUES中没有逗号,并且我不确定如何说“ cfloop中的“当前迭代

  • 问题内容: 我知道,如果我在此答案中使用语法,则可以使用一条语句插入多行。 但是,我要插入的值之一取自一个序列,即 如果尝试运行它,则会收到ORA-02287错误。有什么办法解决这个问题,还是我应该只使用很多INSERT语句? 编辑: 如果我必须为序列以外的所有其他列指定列名,那么我会失去原来的简洁性,所以这是不值得的。在这种情况下,我将只使用多个INSERT语句。 问题答案: 这有效:

  • 我使用Liquibase insert将两行添加到数据库中,并通过外键链接它们,如下所示: 除了表2中外键的值外,两条记录都正确插入。此值保持为空。因此,“computeValue”属性似乎没有正确执行,但我不明白为什么。我希望在Liquibase中有一个解决方案,而不是在普通SQL中,因为Liquibase提供了一种可能性,可以方便地插入clob字段。 表1:ID- 55228390499230