警告 pg_execute(): 查询失败: 错误: 索引行大小 2728 超过索引 "index_name" 的最大 2717



新增PHP PG函数。请帮助。

我收到以下警告:

警告pg_execute():查询失败:ERROR: index "index_name"索引行大小2728超过最大2717 .

不知道是什么意思

代码示例:

$query      = pg_prepare($pgConn, "query", "UPDATE table_name SET field_name=array_cat(field_name, $1) WHERE id=$2;");
$query      = pg_execute($pgConn, "query", array($param1, $param2));

我可以看到,由于数据太大,无法为该记录创建索引,但这是否意味着数据也没有存储到DB中?

如果更新索引失败并导致错误,则整个操作失败并撤消。表和索引必须同时修改

由于索引条目必须适合一个8kB的块,并且每个块有一些开销,并且PostgreSQL要求至少三个索引条目适合一个块,因此最终索引条目的长度限制为2717。

有两个选项:

  • drop the index

  • 如果您需要索引进行相等搜索,您可以创建一个"哈希索引";(USING hash);它可以索引大的值,因为它只存储哈希

最新更新