当前位置: 首页 > 知识库问答 >
问题:

尝试的条件约束不是一个可转位的操作问题

施永宁
2023-03-14

在DynamoDB中,除了PHP中的EQ之外,我的查询不使用ComparisonOperator。我使用的是全局二级索引:

$response = $client->query(array(
    "TableName" => $tableName,
    "IndexName" => "topRating", // GSI index name
    "KeyConditions" => array(
        "rating" => array(
            "ComparisonOperator" => "NE", // Only 'EQ' works
            "AttributeValueList" => array(
                array(Type::STRING => "1186") // Sample value
            )
        )
    ),
    "ScanIndexForward" => true,
    "limit" => 5
));

当创建表时,我使用等级作为创建topRatingGSI的散列键

答复如下:

致命错误:未捕获Aws\DynamoDb\Exception\ValidationException:Aws错误代码:ValidationException,状态代码:400,Aws请求ID:XXXXX YYYY ZZZ,Aws错误类型:客户端,Aws错误消息:尝试的条件约束不是可索引操作,用户代理:Aws-sdk-php2/2.7.0 Guzzle/3.9.2 curl/7.19.7 PHP/5.4.30抛出。。。。

共有1个答案

杜昆琦
2023-03-14

根据AWS文档(链接),似乎查询操作不支持NE操作员:

扫描操作支持所有可用的比较运算符。查询操作支持可用比较运算符的子集:EQ、LE、LT、GE、GT、BETWEEN和BEGINS_。

扫描操作确实支持它。

 类似资料:
  • 我想添加一个约束,只在表的一部分中对列强制唯一性。 上面的部分是一厢情愿的想法。 有办法吗?还是应该回到关系绘图板?

  • 演示代码:https://tsplay.dev/N5jo0m 从cut以上,可以看到都是正确的,问题在函数sellect 我需要根据第一个参数name: T去判断第二个参数data的类型 提供的name是fixed就限制data是FixedInstance,否则就限制为FollowInstance 问题1:我在sellect参数传参的时候故意 as FollowInstance,在TS中并没有报错

  • 问题内容: 当我使用maven- hibernate3-plugin(又名hbm2ddl)生成数据库架构时,它会创建许多数据库约束,并且具有难以理解的约束名称,例如。 有没有办法提供更有用的名称,例如? 如果是这样,则可以更轻松地在日志文件和其他地方(除了约束名称之外)不告诉您其他信息的地方查找问题。 问题答案: 从JPA 2.1开始,可以为外键命名。例如 只要确保在@JoinColumn中使用它

  • 我遇到一个情况,需要根据另一个列值对一个列[属性]强制执行唯一约束。 例如,我有一个像table(ID,EID,Name,ISDeleted)这样的表 ISDeleted只能有一个值null或'y'(active或deleted),并且我想在EID上创建一个唯一的约束,仅当ISDeleted=null时才创建ISDeleted,因为我不关心是否有多个具有相同ID的已删除记录。请注意,EID可以为空

  • 尝试使用gcc:https://github.com/wolf9466/cpuminer-multi/blob/master/cryptonight_aesni.c编译此源文件时遇到此错误 “CRYPTONIGT_AESNI.c:162:4:错误:操作数约束不一致”

  • 问题内容: 我有一个用户表,例如: 和一张有工作的桌子: 可以将作业分配给用户,但只能分配给超级用户。其他用户无法分配作业。 因此,我有一个表格,通过它可以查看将哪个作业分配给了哪个用户: 但是我想创建一个检查约束,该约束引用具有的用户。 那可能吗?还是有其他解决方案? 问题答案: 这将适用于INSERTS: 然后在user_has_job表上检查约束: 适用于插入物: 但是,这是可能的: 因此,