2015-03-10 5 views
3

Я просматривал документацию DBS Dynamo DB и интерфейс Amazon Dynamo, и кажется, что нет способа удалить столбец из таблицы, за исключением удаления всей таблицы с ее содержимым и начиная, это правда?Дробная колонка в таблице Dynamo DB

Если да, почему Amazon не поддерживает это?

+0

для требуемого первичного ключа исключением, таблица DynamoDB является схемой меньше. Что означает «удаление столбца» в этом контексте? – mkobit

+0

Если вы просматриваете элементы в таблице в интерфейсе, например, там есть столбцы (атрибуты) таблицы. Фактически, в верхней правой части есть кнопка с надписью «Показать или скрыть атрибуты (столбцы) в представлении« Просмотр элементов »« – yekta

+2

А, я понимаю, что вы сейчас говорите. Похоже, что это делается как удобный инструмент пользовательского интерфейса, чтобы видеть отдельные атрибуты. Единственный способ сделать это - выполнить «Сканирование» с помощью ['FilterExpression'] (http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request- FilterExpression), который включает в себя ['attribute_exists (имя_атрибута)'] (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecificationConditions.html#ConditionExpressionReference) для фильтрации, а затем запрос на обновление элемент и удалить этот атрибут. – mkobit

ответ

2

Попробуйте удалив все данные из этой колонки, он автоматически удалит эту колонку.

+0

Это работало в AWS explorer. (хотя вам нужно закрыть таблицу и снова открыть ее, чтобы увидеть изменение.) –

1

Установка всех экземпляров значения столбца на нуль удаляет столбец.

В C# этот метод делает трюк с помощью рамки настойчивость:

static void RemoveColumn() 
{ 
    var myItems = context.ScanAsync<MyObjectType>(null).GetRemainingAsync().Result; 

    // Foreach item, update 
    myItems.ForEach(myObject => 
    { 
     myObject.UnwantedColumn = null; 
     context.Save(myObject); 
    }); 
} 
Смежные вопросы