仅当id不存在时才插入数据库

永恒的

我正在使用Postgres,在下面的代码中,我仅想在数据库id不存在时才插入数据库

DROP TABLE json_table;
CREATE temp TABLE json_table (
    id VARCHAR(50) PRIMARY KEY,
    str_col VARCHAR(500),
    int_col SMALLINT,
    bool_col BOOLEAN,
    json_col JSON,
    float_col DECIMAL
);
INSERT INTO json_table
    SELECT * FROM json_populate_recordset (NULL::json_table,
     '{ "insert": [
        {
          "id": "1",
          "str_col": "Postgres bar data",
          "int_col": 3151,
          "bool_col": false,
          "json_col": {
            "data": "tutorials"
          },
          "float_col": 11.51099159756918
        },
        {
          "id": "2",
          "str_col": "Postgres tutorials data data",
          "int_col": 4237,
          "bool_col": true,
          "json_col": {
              "type": "type"
          },
          "float_col": 48.94065780742467
        }
      ]}'::json->'insert');
SELECT * FROM json_table;
专线小巴

您可以使用该on conflict do nothing子句。您的id列是表的主键,因此可以正常工作:

INSERT INTO json_table
SELECT * 
FROM json_populate_recordset (NULL::json_table,
     '{ "insert": [
        {
          "id": "1",
          "str_col": "Postgres bar data",
          "int_col": 3151,
          "bool_col": false,
          "json_col": {
            "data": "tutorials"
          },
          "float_col": 11.51099159756918
        },
        {
          "id": "2",
          "str_col": "Postgres tutorials data data",
          "int_col": 4237,
          "bool_col": true,
          "json_col": {
              "type": "type"
          },
          "float_col": 48.94065780742467
        }
      ]}'::json->'insert')
ON CONFLICT (id) DO NOTHING;

DB Fiddle上的演示

假设此记录已插入:

insert into json_table(id) values(1)

上面的查询没有错误地执行,并且仅插入第二行。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅当记录不存在时才将数据保存到数据库cakephp 3.0

来自分类Dev

仅当数据库不存在时,ebean才运行ddl

来自分类Dev

仅当数据库不存在时,ebean才运行ddl

来自分类Dev

仅当数组元素不存在时如何将其插入数据库

来自分类Dev

仅当数据不存在时才将数据添加到数据库(Node js)

来自分类Dev

仅当记录不存在时才插入表

来自分类Dev

仅当fb_id不存在时才插入-否则不执行任何操作-PHP

来自分类Dev

仅当不存在而未获取其 id 时才插入一行

来自分类Dev

仅当一个表中的数据不存在时才将其插入

来自分类Dev

SQL查询-插入,但仅当记录不存在时才插入?

来自分类Dev

SQL查询-插入,但仅当记录不存在时才插入?

来自分类Dev

仅当“if 语句”正确时才插入数据库

来自分类Dev

仅当值不存在时才从SELECT插入表中

来自分类Dev

仅当使用MySQL的值不存在时才如何从表中插入值?

来自分类Dev

仅当不存在时才插入MySQL,否则什么也不做

来自分类Dev

仅当 oracle sql 中不存在值时才插入

来自分类Dev

OperationalError:数据库不存在

来自分类Dev

严重:数据库不存在

来自分类Dev

数据库不存在

来自分类Dev

尝试将未处理的异常插入SQL Server数据库时,对象类型不存在任何映射

来自分类Dev

仅当值不存在时才返回行

来自分类Dev

SQL-仅当B不存在时才选择A

来自分类Dev

如果特定列中不存在值,则将数据插入数据库

来自分类Dev

仅当使用rust在地图中不存在新对象时,才如何将其插入地图?

来自分类Dev

仅当不存在记录时,才通过存储过程从TVP列表中插入项目-性能降低

来自分类Dev

H2 SQL数据库-如果记录不存在,则插入

来自分类Dev

解决与“如果不存在则插入”模式有关的数据库并发问题

来自分类Dev

自动更新或插入(如果不存在)到mysql数据库

来自分类Dev

无法插入sqlite数据库,错误:表不存在

Related 相关文章

  1. 1

    仅当记录不存在时才将数据保存到数据库cakephp 3.0

  2. 2

    仅当数据库不存在时,ebean才运行ddl

  3. 3

    仅当数据库不存在时,ebean才运行ddl

  4. 4

    仅当数组元素不存在时如何将其插入数据库

  5. 5

    仅当数据不存在时才将数据添加到数据库(Node js)

  6. 6

    仅当记录不存在时才插入表

  7. 7

    仅当fb_id不存在时才插入-否则不执行任何操作-PHP

  8. 8

    仅当不存在而未获取其 id 时才插入一行

  9. 9

    仅当一个表中的数据不存在时才将其插入

  10. 10

    SQL查询-插入,但仅当记录不存在时才插入?

  11. 11

    SQL查询-插入,但仅当记录不存在时才插入?

  12. 12

    仅当“if 语句”正确时才插入数据库

  13. 13

    仅当值不存在时才从SELECT插入表中

  14. 14

    仅当使用MySQL的值不存在时才如何从表中插入值?

  15. 15

    仅当不存在时才插入MySQL,否则什么也不做

  16. 16

    仅当 oracle sql 中不存在值时才插入

  17. 17

    OperationalError:数据库不存在

  18. 18

    严重:数据库不存在

  19. 19

    数据库不存在

  20. 20

    尝试将未处理的异常插入SQL Server数据库时,对象类型不存在任何映射

  21. 21

    仅当值不存在时才返回行

  22. 22

    SQL-仅当B不存在时才选择A

  23. 23

    如果特定列中不存在值,则将数据插入数据库

  24. 24

    仅当使用rust在地图中不存在新对象时,才如何将其插入地图?

  25. 25

    仅当不存在记录时,才通过存储过程从TVP列表中插入项目-性能降低

  26. 26

    H2 SQL数据库-如果记录不存在,则插入

  27. 27

    解决与“如果不存在则插入”模式有关的数据库并发问题

  28. 28

    自动更新或插入(如果不存在)到mysql数据库

  29. 29

    无法插入sqlite数据库,错误:表不存在

热门标签

归档