PostgreSQL을 데이터베이스로 사용하고 있습니다. 그리고 데이터베이스에 항목을 만들어야하며 이미 존재하는 경우 해당 필드를 업데이트하면되지만 필드 중 하나는 설정되지 않은 경우에만 업데이트해야합니다.
이 질문의 정보를 사용 했습니다 : https : //.com/questions/13305878/dont-update-column-if-update-value-is-null , 그것은 내가 가진 것과 매우 관련이 있습니다.
이 쿼리를 사용하려고 시도했지만 실행할 때 오류가 발생했습니다 Column reference 'affiliate_code' is ambiguous
.
INSERT INTO accounts (id, token, affiliate_code)
VALUES (value1, value2, value3)
ON CONFLICT (id) DO
UPDATE SET token = value2,
affiliate_code = COALESCE(affiliate_code, value3);
(실제 값은 물론 대체됩니다).
내가 교체 할 경우 affiliate_code = COALESCE(affiliate_code, value3)
에 affiliate_code = value3
모든 작업, 길에서 나는 일을하지 그러나.
이 작업을 어떻게 수행 할 수 있습니까?
내 테이블을 정의하는 방법은 다음과 같습니다.
CREATE TABLE accounts (
id VARCHAR NOT NULL UNIQUE,
token VARCHAR NOT NULL,
affiliate_code VARCHAR
);
= COALESCE(accounts.affiliate_code, EXCLUDED.affiliate_code)
.