Метод DeleteItem
Статья создана
Обновлена 12 июля 2022 г.
Удаляет элемент в таблице по указанному первичному ключу.
Можно задать условие. Тогда запись удалится только в том случае, если условие выполнится.
В ответе можно получить значения атрибутов, какими были до удаления элемента.
Запрос
Запрос содержит данные в формате JSON.
{
"ConditionalOperator": "string",
"ConditionExpression": "string",
"Expected": {
"string" : {
"AttributeValueList": [
{
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
],
"ComparisonOperator": "string",
"Exists": boolean,
"Value": {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
}
},
"ExpressionAttributeNames": {
"string" : "string"
},
"ExpressionAttributeValues": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
},
"Key": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
},
"ReturnConsumedCapacity": "string"
"ReturnValues": "string",
"TableName": "string"
}
Параметры
Параметр | Описание |
---|---|
Key |
Ассоциативный массив имен атрибутов для объектов AttributeValue , представляющий первичный ключ удаляемого элемента.Для простого первичного ключа нужно указать только его значение. Для составного первичного ключа нужно указать значение ключа раздела и ключа сортировки. Тип: Строка Длина: 1 - 65535 символов. Обязательно: Да |
TableName |
Имя таблицы, из которой нужно удалить элемент.Может содержать путь в иерархии каталогов вида path/to/table Тип: Строка Длина: 3 - 255 символов Шаблон: [a-zA-Z0-9_.-]+ Обязательно: Да |
ConditionExpression |
Условие для удаления. Запись будет удалена только в том случае, если условие выполнится. Условие состоит из:
Тип: Строка Обязательно: Нет |
ExpressionAttributeNames |
Заполнитель (placeholder), который можно использовать в выражении вместо имени атрибута. Заполнитель должен начинаться с символа решетки # .В каких случаях это может пригодиться:
Percentile конфликтует с зарезервированным словом, и его нельзя в явном виде использовать в выражении. Чтобы обойти эту проблему, нужно в параметре ExpressionAttributeNames указать заполнитель: {"#P":"Percentile"} . И затем вместо настоящего имени атрибута использовать #P .Тип: Строка Длина: 1 - 65535 символов. Обязательно: Нет |
ExpressionAttributeValues |
Заполнитель (placeholder), который можно использовать в выражении вместо значения атрибута, аналогично ExpressionAttributeNames . Заполнитель должен начинаться с символа двоеточия : .Например, нужно проверить, было ли значение атрибута ProductStatus одним из следующих: Available | Backordered | Discontinued . Для этого сначала объявить заполнители : { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} } . А потом их можно использовать в выражении: ProductStatus IN (:avail, :back, :disc) Тип: Строка типа AttributeValue Обязательно: Нет |
ReturnConsumedCapacity |
Нужно ли возвращать информацию о потребляемой мощности.
Тип: Строка Возможные значения: TOTAL | NONE Обязательно: Нет |
ReturnValues |
Используется, если нужно получить атрибуты удаляемого элемента. Возможные значения:
Тип: Строка Обязательно: Нет |
Ответ
В случае успеха вернется HTTP с кодом 200.
Запрос возвращает данные в формате JSON.
{
"Attributes": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
},
"ConsumedCapacity": {
"CapacityUnits": number,
"GlobalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"LocalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"ReadCapacityUnits": number,
"Table": {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"TableName": "string",
"WriteCapacityUnits": number
}
}
Параметры
Параметр | Описание |
---|---|
Attributes |
Ассоциативный массив типа AttributeValue , который содержит представление элемента до его удаления.Возвращается только в том случае, если в запросе был указан параметр ReturnValues со значением ALL_OLD .Тип: Ассоциативный массив типа AttributeValue Длина: 1 - 65 535 символов. |
ConsumedCapacity |
Единицы мощности, потребленные операцией удаления. Возвращается только в том случае, если в запросе был указан параметр ReturnConsumedCapacity со значением TOTAL .Тип: объект типа ConsumedCapacity |
Ошибки
Параметр | Описание |
---|---|
ConditionalCheckFailedException |
Невозможно оценить условие, указанное в операции. Код состояния HTTP: 400 |
InternalServerError |
Произошла внутренняя ошибка на стороне сервера. Код состояния HTTP: 500 |
ItemCollectionSizeLimitExceededException |
Коллекция элементов слишком велика. Это исключение возвращается только для таблиц с одним или несколькими локальными вторичными индексами. Код состояния HTTP: 400 |
ProvisionedThroughputExceededException |
Вы слишком часто отправляете запросы. Попробуйте увеличить интервалы между запросами. Если таких запросов будет не слишком много, Managed Service for YDB постарается обработать их все. Код состояния HTTP: 400 |
RequestLimitExceeded |
Пропускная способность превышает квоту. Код состояния HTTP: 400 |
ResourceNotFoundException |
Указанная таблица не существует. Код состояния HTTP: 400 |
TransactionConflictException |
Операция отклонена, так как для элемента выполняется другая транзакция. Код состояния HTTP: 400 |
Также могут возникать Общие ошибки, одинаковые для всех методов.