Postgres - 在从表中选择值时在 INSERT INTO 查询中插入时间戳?

讨价还价23

我正在尝试在 Phoenix 应用程序中运行迁移,但 Postgrex 返回以下错误:

null value in column "inserted_at" violates not-null constraint

产生该错误的查询是:

execute "INSERT INTO contract_groups
  (SELECT c.id, fg.group_id FROM contracts c, folder_groups fg
  WHERE c.folder_id = fg.folder_id)"

我尝试将查询更新为:

execute "INSERT INTO contract_groups
  (contract_id, group_id, inserted_at)
  VALUES ((SELECT c.id, fg.group_id FROM contracts c, folder_groups fg 
  WHERE c.folder_id = fg.folder_id), NOW())"

但我收到另一个错误说subquery must return only one column

是表的粗略定义。

约翰HC
insert into contract_groups (contract_id, group_id, inserted_at)
select c.id, fg.group_id, CURRENT_TIMESTAMP
from contracts c
inner join folder_groups fg
on fg.folder_id = c.folder_id

请注意,这取决于所选的列与语句中的列的顺序相匹配

更新:

根据评论,尝试:

insert into contract_groups (contract_id, group_id, inserted_at)
select distinct c.id, -- distinct added to prevent duplicates
                fg.group_id, 
                CURRENT_TIMESTAMP
from contracts c
inner join folder_groups fg
on fg.folder_id = c.folder_id
where not exists ( -- exclude any combos that are in the target table
                 select 1 
                 from contract_groups cg
                 where cg.contract_id = c.id
                 and fg.froup_id = cg.group_id
                 )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Postgres中,将值数组用于INSERT

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

Google表格脚本可在从表单插入的行中插入时间戳

来自分类Dev

从Postgres中的分组行中选择值

来自分类Dev

如何在 SQL-Server 的表中管理自动插入时间戳值?

来自分类Dev

从 postgres 日期和 postgres 时间获取 Postgres 时间戳值

来自分类Dev

如何在Doobie(Postgres)中读取/写入时间戳

来自分类Dev

ELK - 如何从日志文件中选择时间戳而不是插入时间戳

来自分类Dev

Python如何在MongoDB的ISODate类型中插入时间戳值?

来自分类Dev

提交时无法在数据库中插入时间戳

来自分类Dev

Postgres根据查询结果从表中选择

来自分类Dev

从postgres中的表中选择所有重复项

来自分类Dev

在 Postgres 中,如何从表中选择最近日期的行?

来自分类Dev

按下按钮时插入时间戳的脚本建议

来自分类Dev

插入时间戳(毫秒)时发生错误

来自分类Dev

按下按钮时插入时间戳的脚本建议

来自分类Dev

如何使用 JOOQ 将 Postgres“无穷大”插入时间戳字段?

来自分类Dev

在Postgres中的JSONB字段中选择不为空的值

来自分类Dev

postgres INSERT命令中的速度提高

来自分类Dev

Postgres 中的批处理条件 INSERT INTO 语句

来自分类Dev

尝试使用 postgres INSERT INTO 表时出现语法错误

来自分类Dev

Postgres SQL:如何为Postgres中的相同时间戳选择“媒体”列中的最大值?

来自分类Dev

Postgres表选择查询太慢

来自分类Dev

在从列表中选择的专用字段中显示值

来自分类Dev

如何在Postgres中使用循环将INSERT批量存储到表中

来自分类Dev

如何使用[Insert into ... select]语句而不是[Insert into ... vales]方法在postgres中插入元组

来自分类Dev

是否可以在Postgres INSERT中声明和使用$ 1,$ 2等值?

来自分类Dev

Postgres 9.2 INSERT 从带有分隔值的字符串中跳过重复项

Related 相关文章

  1. 1

    在Postgres中,将值数组用于INSERT

  2. 2

    如何在Hive表中插入时间戳?

  3. 3

    如何在Hive表中插入时间戳?

  4. 4

    Google表格脚本可在从表单插入的行中插入时间戳

  5. 5

    从Postgres中的分组行中选择值

  6. 6

    如何在 SQL-Server 的表中管理自动插入时间戳值?

  7. 7

    从 postgres 日期和 postgres 时间获取 Postgres 时间戳值

  8. 8

    如何在Doobie(Postgres)中读取/写入时间戳

  9. 9

    ELK - 如何从日志文件中选择时间戳而不是插入时间戳

  10. 10

    Python如何在MongoDB的ISODate类型中插入时间戳值?

  11. 11

    提交时无法在数据库中插入时间戳

  12. 12

    Postgres根据查询结果从表中选择

  13. 13

    从postgres中的表中选择所有重复项

  14. 14

    在 Postgres 中,如何从表中选择最近日期的行?

  15. 15

    按下按钮时插入时间戳的脚本建议

  16. 16

    插入时间戳(毫秒)时发生错误

  17. 17

    按下按钮时插入时间戳的脚本建议

  18. 18

    如何使用 JOOQ 将 Postgres“无穷大”插入时间戳字段?

  19. 19

    在Postgres中的JSONB字段中选择不为空的值

  20. 20

    postgres INSERT命令中的速度提高

  21. 21

    Postgres 中的批处理条件 INSERT INTO 语句

  22. 22

    尝试使用 postgres INSERT INTO 表时出现语法错误

  23. 23

    Postgres SQL:如何为Postgres中的相同时间戳选择“媒体”列中的最大值?

  24. 24

    Postgres表选择查询太慢

  25. 25

    在从列表中选择的专用字段中显示值

  26. 26

    如何在Postgres中使用循环将INSERT批量存储到表中

  27. 27

    如何使用[Insert into ... select]语句而不是[Insert into ... vales]方法在postgres中插入元组

  28. 28

    是否可以在Postgres INSERT中声明和使用$ 1,$ 2等值?

  29. 29

    Postgres 9.2 INSERT 从带有分隔值的字符串中跳过重复项

热门标签

归档