1

我有一个具有以下结构的数据库表:

CREATE TABLE fact.cabinet_account (
    id serial NOT NULL,
    account_name text NULL,
    cabinet_id int4 NULL,
    CONSTRAINT cabinet_account_account_name_key UNIQUE (account_name),
    CONSTRAINT cabinet_account_pkey PRIMARY KEY (id),
    CONSTRAINT cabinet_account_cabinet_id_fkey FOREIGN KEY (cabinet_id) REFERENCES fact.cabinet(id)
);

我有一个 JSON InvokeHttp,我想从中放入数据库:

{
  "login" : "some_maild@gmail.com",
  "priority_level" : 5,
  "is_archive" : false
}

我正在使用QueryRecord这个脚本:

SELECT
19 AS cabinet_id, 
login AS account_name
FROM FLOWFILE

我正在尝试使用UPSERT处理器PutDatabaseRecord并收到错误:

ERROR: value NULL at column "id" 

如何使用 Apache NiFi 为串行列赋值?

更新

我的 JSON 看起来像(之前PutDatabase):

[ {
  "account_name" : "email1@maximagroup.ru",
  "priority_level" : 1000,
  "cabinet_id" : 19
}, {
  "account_name" : "email2@gmail.com",
  "priority_level" : 1,
  "cabinet_id" : 19
}, {
  "account_name" : "email3@umww.com",
  "priority_level" : 1000,
  "cabinet_id" : 19
} ]

PutDatabaseRecord好像: 在此处输入图像描述

4

1 回答 1

0

尝试进行操作INSERT而不是UPSERT

AnUPSERT需要检查给定的是否id存在,以知道它是否应该插入或更新,因为没有提供,所以它不能这样做id

于 2020-12-28T22:44:55.457 回答