Вот мои варианты использования: у меня есть таблица Dynamo с ключом хэша + диапазона. Когда я помещаю новые элементы в таблицу, я хочу выполнить проверку уникальности. Иногда я хочу гарантировать, что хэш уникален (игнорируя диапазон). В других случаях я хочу разрешить повторяющиеся хэши, но гарантирую, что комбинация хэшей и диапазона уникальна. Как я могу это сделать?
Я экспериментировал с атрибутом_not_exists. Кажется, что он обрабатывает второй случай, когда он проверяет комбинацию хэшей+. Здесь образец PHP:
$client->putItem(array(
'TableName' => 'test',
'Item' => array(
'hash' => array('S' => 'abcdefg'),
'range' => array('S' => 'some other value'),
'whatever' => array('N' => 233)
),
'ConditionExpression' => 'attribute_not_exists(hash)'
));
Как ни странно, это не имеет значения, если я использую attribute_not_exists(hash)
или attribute_not_exists(range)
. Оба они, похоже, делают то же самое. Так ли это должно работать?
Любая идея, как обрабатывать случай, когда я хочу только проверить hash
на уникальность?