2017-04-02 95 views
0

我想使用DynamoDB创建表。我们不需要在DyamoDB中创建模式时指定所有列名称,只需要指定主键(散列键+排序键[可选])。现在,如果我的表有一些其他属性,我希望每个插入的项都存在 - 即,将NOT NULL约束添加到除键之外的其他属性,那么如何在DynamoDB中实现它?DynamoDB中的NOT NULL约束

回答

0

在DynamoDB上没有明确提供的NotNull约束。但是,如果您使用的是DynamoDBMapper,则可以为该属性提供默认值

此外,DynamoDB API不允许添加具有空值的属性(即空值或空字符串'')。 API确实会抛出异常。

换句话说,你不需要像RDBMS数据库那样定义一个约束。此外,没有解决方法来覆盖此功能。这个条件适用于所有的属性,即你不能有NULL或空值的任何属性。

实施例使用注释来设置默认值: -

@DynamoDBAutoGeneratedDefault("default") 
@DynamoDBAttribute(attributeName = "name") 
public String getName() { 
    return name; 
} 

com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: 提供的AttributeValue是空的,必须只包含所支持的 之一数据类型(服务:AmazonDynamoDBv2;状态码:400; 错误代码:ValidationException;请求ID: 1dd8288c-7151-43d3-83d0-dbb7842d705a)

相关问题