Insert
public BackendReturnObject Insert(string tableName);
public BackendReturnObject Insert(string tableName, Param param);
파라미터
Value | Type | Description |
---|---|---|
tableName | String | 게임정보를 저장할 테이블 명 |
param | Param | (optional) 게임정보에 저장할 내용 |
설명
테이블에 row을 저장합니다.
- 해당 row는 insert 한 유저에게 귀속됩니다.
- Param을 명시하지 않은 경우 콘솔에서 설정한 기본값으로 저장됩니다.
- Param을 인자값으로 준 경우 Param에 입력한 값으로 저장됩니다.
- 저장 시,
partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate
7가지 필드는 서버에서 사용하는 컬럼입니다. 해당 컬럼이 포함되면 에러가 발생합니다.Get으로 퍼블릭 테이블을 불러올 때 내 정보와 상대방에 정보가 혼재되어 구분이 되지 않을 수 있습니다.
그렇기에 유저의 inDate를 미리 스카마에 추가 해두는 등의 방법을 사용하시는 것을 추천드립니다.
Example
동기
Param lunch = new Param();
lunch.Add("how much", 332);
lunch.Add("when", "yesterday");
lunch.Add("what", "eat chocolate");
Dictionary<string, int> dic = new Dictionary<string, int>
{
{ "dic1", 1 },
{ "dic4", 2 },
{ "dic2", 4 }
};
Dictionary<string, string> dic2 = new Dictionary<string, string>
{
{ "mm", "j" },
{ "nn", "n" },
{ "dd", "2" }
};
String[] list = { "a", "b" };
int[] list2 = { 400, 500, 600 };
Param param = new Param();
param.Add("이름", "cheolsu");
param.Add("score", 99);
param.Add("lunch", lunch);
param.Add("dic_num", dic);
param.Add("dic_string", dic2);
param.Add("list_string", list);
param.Add("list_num", list2);
Backend.GameSchemaInfo.Insert ( "tableName", param );
비동기
Backend.GameSchemaInfo.Insert( "tableName", param, (callback) =>
{
// 이후 처리
});
SendQueue
SendQueue.Enqueue(Backend.GameSchemaInfo.Insert, "tableName", param, (callback) =>
{
// 이후 처리
});
ReturnCase
Success cases
테이블 삽입에 성공한 경우
statusCode : 200
message : Success
returnValue : {"inDate":"삽입에 성공한 테이블의 inDate"}
ex) returnValue : {"inDate":"2020-06-10T09:30:52.910Z"}
Error cases
존재하지 않는 table에 insert를 시도한 경우
statusCode : 404
errorCode : NotFoundException
message : table not found, table을(를) 찾을 수 없습니다
비활성화 된 table에 insert를 시도한 경우
statusCode : 412
errorCode : PreconditionFailed
message : inactiveTable 사전 조건을 만족하지 않습니다.
param에 partition, gamer_id, inDate, updatedAt, sender, receiver, reservationDate 7가지 필드가 있는 경우
statusCode : 405
errorCode : MethodNotAllowedParameterException
message : MethodNotAllowed {param value}, 이용할 수 없는 {param value} 입니다
하나의 row( column들의 집합 )이 400KB를 넘는 경우
statusCode : 413
errorCode : ServerErrorException
message : request entity too large
스키마를 정의할 때 선언한 컬럼의 데이터 타입과 insert 하려는 데이터 타입이 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad dataType, 잘못된 dataType 입니다
스키마를 정의하지 않은 컬럼을 insert하려고 시도한 경우
statusCode : 400
errorCode : BadParameterException
message : bad 컬럼이 존재하지 않습니다., 잘못된 컬럼이 존재하지 않습니다. 입니다
스키마에 list 컬럼을 선언했는데 삽입 시 param에 list 컬럼을 입력하지 않은 경우
statusCode : 400
errorCode : BadParameterException
message : bad list data, 잘못된 list data 입니다
스키마에 list 컬럼을 선언할 때 선택한 list의 크기와 param에 입력한 list의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad list data length, 잘못된 list data length 입니다
스키마에 map 컬럼을 선언했는데 삽입 시 param에 map 컬럼을 입력하지 않은 경우
statusCode : 400
errorCode : BadParameterException
message : bad map data, 잘못된 map data 입니다
스키마에 map 컬럼을 선언할 때 선택한 map의 크기와 param에 입력한 map의 크기가 다른 경우
statusCode : 400
errorCode : BadParameterException
message : bad map data length, 잘못된 map data length 입니다