현재 개발자 문서는 SDK 5.11.1 버전 이후로 업데이트 되지 않는 문서입니다.
새로운 기능이 업데이트 되는 NEW 개발자 문서를 이용해 주세요!
현재 개발자 문서는 SDK 5.11.1 버전 이후로 업데이트 되지 않는 문서입니다.
새로운 기능이 업데이트 되는 NEW 개발자 문서를 이용해 주세요!
public BackendReturnObject Update(string tableName, Where where, Param param);
Value | Type | Description |
---|---|---|
tableName | string | 업데이트를 할 테이블명 |
where | Where | 업데이트를 할 row를 찾기 위한 param |
param | Param | 업데이트할 정보 |
테이블에 저장되어 있는 값 중 where 조건문에 해당하는 row 1개를 검색하여 수정합니다.
long의 경우 다음과 같이 데이터가 저장됩니다.
12345678912345678 -> 12345678912345678(9000조 이하, 기본값 유지)
123456789123456789 -> 123456789123456780(9000조 이상, 내림 처리 발생)
1234567891234567891 -> 1234567891234568000
9223372036854775807 -> 9223372036854776000(long의 최대값)
더 큰 데이터 저장을 위해 double로 정수를 저장할 경우 다음과 같이 표시됩니다.
12345678912345678912 -> 12345678912345678000(long의 최대값 보다 더 큰 double)
123456789123456789123.0 -> 123456789123456800000
1234567891234567891234.0 -> 123456789123456800000000
1.23456789123457E+29 -> 123456789123457000000000000000
해당 수를 클라이언트(C#)에서 받을 경우 지수형태로 변경이 될 수 있습니다.
12345678912345678000 -> 1.23456789123457E+19
param에 row 내 일부 컬럼만 존재할 경우 해당 컬럼만 수정됩니다.
param에 row 내 존재하지 않는 컬럼이 존재할 경우 아래와 같이 동작합니다.
Where 조건을 new Where() 과 같이 조건을 주지 않은 경우 Update를 시도한 유저가 소유한 row 중 가장 최근에 삽입된 row가 수정됩니다.
저장 시, partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate, owner_inDate 8가지 필드는 서버에서 사용하는 컬럼입니다.
해당 컬럼이 param에 포함된 경우 에러가 발생합니다.
Value | Description | 뒤끝 콘솔에서 노출 여부 |
---|---|---|
partition | 서버에서 테이블을 구분하기 위해 사용하는 값입니다. | X |
gamer_id | row 소유자의 게이머 ID입니다. | O |
inDate | row의 inDate입니다. (key 값입니다.) | O |
updatedAt | 테이블이 마지막으로 수정된 시각입니다. | O |
sender | 뒤끝 기능을 위해 내부에서 사용하는 값입니다. (우편 등) | X |
receiver | 뒤끝 기능을 위해 내부에서 사용하는 값입니다. (우편 등) | X |
reservationDate | 뒤끝 기능을 위해 내부에서 사용하는 값입니다. (우편 등) | X |
owner_inDate | row 소유자의 유저 inDate입니다. | O |
owner_inDate 가 없는 구버전 테이블의 row의 경우 해당 함수를 이용하여 갱신하면 owner_inDate 컬럼이 추가됩니다.
수정에 성공한 경우
statusCode : 204
message : Success
비활성화된 테이블의 수정을 시도한 경우
statusCode : 412
errorCode : PreconditionFailed
message : inactiveTable 사전 조건을 만족하지 않습니다.
존재하지 않는 tableName인 경우
statusCode : 404
errorCode : NotFoundException
message : table not found, table을(를) 찾을 수 없습니다
업데이트할 데이터의 크기가 400KB를 넘는 경우
statusCode : 413
errorCode : ServerErrorException
message : request entity too large
수정하려는 컬럼의 갯수가 총 290개를 넘을 경우
statusCode : 400
errorCode : ValidationException
message : Invalid UpdateExpression: Expression size has exceeded the maximum allowed size;
where 조건으로 update할 테이블을 검색했으나 테이블이 존재하지 않은 경우
statusCode : 404
errorCode : NotFoundException
message : gameInfo not found, gameInfo을(를) 찾을 수 없습니다
partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate, owner_inDate 8가지 필드가 param에 포함된 경우
statusCode : 405
errorCode : MethodNotAllowedParameterException
message : MethodNotAllowed {param value}, 이용할 수 없는 {param value}입니다
(스키마) 스키마를 정의하지 않은 컬럼을 where 조건으로 검색하려 한 경우
statusCode : 404
errorCode : NotFoundException
message : gameInfo not found, gameInfo을(를) 찾을 수 없습니다
(스키마) 스키마를 정의하지 않은 컬럼을 수정하려 한 경우
statusCode : 400
errorCode : BadParameterException
message : bad 컬럼이 존재하지 않습니다., 잘못된 컬럼이 존재하지 않습니다. 입니다
(스키마) 스키마를 정의할 때 선언한 컬럼의 데이터 타입과 update 하려는 컬럼의 데이터 타입이 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad {column 명} dataType, 잘못된 {column 명} dataType입니다
(스키마) 스키마에 list 컬럼을 선언할 때 선택한 list의 크기와 param에 입력한 list의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad list data length, 잘못된 list data length입니다
(스키마) 스키마에 map 컬럼을 선언할 때 선택한 map의 크기와 param에 입력한 map의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad map data length, 잘못된 map data length입니다
이 문서가 도움이 되었나요?