업데이트 표현식의 피연산자에 잘못된 데이터 유형이 있습니다.

TL;DR — 업데이트 작업의 유형은 실제로 저장된 내용(및 전송한 값)에 대해 유형 검사되며 그 중 하나가 맞지 않습니다. 숫자나 집합이 아닌 속성에 대한 ADD, 목록이 아닌 항목에 대한 list_append 또는 요소 유형이 저장된 집합과 일치하지 않는 집합 피연산자. 피연산자를 저장된 유형과 일치시키거나 유형이 변동된 항목을 수정하십시오.

무엇을 의미하는가

ValidationException: An operand in the update expression has an incorrect data type

업데이트 작업에는 엄격한 유형 규칙이 있습니다. ADD숫자집합(SS/NS/BS)에서만 작동하고, DELETE는 집합에서만 작동하며, list_append는 두 개의 목록을 사용합니다. DynamoDB는 쓰기 시 항목의 현재 속성 유형에 대해 표현식을 평가합니다. 따라서 동일한 요청이 한 항목에서는 성공하고 속성이 다른 유형을 보유한 다른 항목에서는 실패할 수 있습니다. 가까운 사촌은 이전에 표현식 구문 분석 시 전송된 값의 유형이 연산자에 맞지 않을 때 거부됩니다.

ValidationException: Invalid UpdateExpression: Incorrect operand type for
operator or function; operator: ADD, operand type: LIST

왜 발생하는가

  • ADD counter :one이지만 counter은 문자열로 저장됩니다 — 예: 품목이 5(유형 N) 대신 "5"(유형 S)로 수입되었습니다.
  • 목록(L) 피연산자가 있는 ADD tags :tADD는 목록이 아닌 _sets_로 수집됩니다. 목록에는 SET + list_append가 추가됩니다.
  • list_append(mylist, :v) 여기서 mylist는 맵, 집합 또는 스칼라입니다 — 두 인수는 모두 목록이어야 합니다(단일 요소를 단일 항목 목록으로 래핑).
  • 설정 요소 유형 불일치 — 저장된 숫자 집합(NS)에 대해 문자열 집합(SS) 피연산자가 있는 ADD/DELETE 또는 그 반대.
  • 항목 간 유형 드리프트 — 혼합 작성자(이전 가져오기, 다른 서비스)가 일부 항목에는 N, 다른 항목에는 S와 동일한 속성을 남겨두었기 때문에 가끔 업데이트가 실패합니다.

어떻게 해결하는가

  1. 카운터: 값을 숫자로 저장하고 숫자 피연산자를 보냅니다.

    UpdateExpression: 'ADD #c :one',
    ExpressionAttributeValues: {':one': 1}   // {N: "1"} — not a string
  2. 목록: list_append과 함께 SET를 사용하고 새 요소를 목록으로 묶습니다.

    UpdateExpression: 'SET #l = list_append(if_not_exists(#l, :empty), :new)',
    ExpressionAttributeValues: {':new': ['item'], ':empty': []}
  3. 세트: ADD/DELETE 피연산자를 저장된 속성과 동일한 세트 유형으로 유지합니다(SS에는 SS, NS에는 NS).

  4. 드리프트된 항목 수정 — 속성이 잘못된 유형을 전달하는 항목을 찾아 한 번 다시 작성합니다. "일부 항목에서 동일한 업데이트가 실패합니다" 증상은 항상 코드가 아니라 데이터입니다.

  5. 업데이트하기 전에 항목을 읽으십시오. 빠른 GetItem는 해당 특정 행에서 counterN인지 S인지를 보여줍니다.

DynoTable에서 열기

DynoTable의 항목 편집기는 해당 값 옆에 각 속성의 저장된 유형(S, N, L, SS, …)을 표시합니다. 숫자 카운터를 나타내는 문자열 "5"ADD를 실행하기 전에 분명합니다. ⌘K가 있는 항목을 열고 유형을 검사한 다음 스테이징(⌘S)을 사용하여 업데이트를 테스트합니다.

명시적 유형 태그를 사용하여 Expression Builder에서 수정된 표현식을 작성합니다. ⌘P로 프로필을 전환합니다. Connect to AWSInstall을 참조하세요.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.