PostgreSQL hstore 数组列上的索引

2023-12-07

我知道您可以在 hstore 列中的字段上创建索引。 我知道您还可以在数组列上创建 GIN 索引。

但是在 hstore 数组上创建索引的语法是什么?

e.g.

CREATE TABLE customer (
    pk serial PRIMARY KEY,
    customer hstore,
    customer_purchases hstore[]
);

假设客户购买的 hstore 可能是一个像这样的哈希值

productId -> 1
price -> 9.99

我在 customer_purchases hstore[] 中有一个数组

我想在 customer.customer_purchases[]->productId 上创建索引

这可能吗?我尝试了 CREATE INDEX 语法的不同组合,但它们似乎都不支持 hstore 数组中的索引字段。


我认为你误解了 PostgreSQLArrays. An Array实际上只是一个字符串。您无法为对象建立索引(在本例中HSTOREs) 在数组中,只是因为它不是TABLE.

相反,创建一个额外的表:

CREATE TABLE customer (
    pk bigserial PRIMARY KEY,
    customer hstore
);

CREATE TABLE purchases (
    pk bigserial PRIMARY KEY,
    customer_pk bigint not null,
    purchase hstore not null,
    constraint "must be a valid customer!" 
        foreign key (customer_pk) references customer(pk)
);

另外,你为什么使用HSTOREs here?

If you must创建一个INDEX基于"purchase" HSTORE在这里,做这样的事情:

CREATE OR REPLACE FUNCTION purchase_amount(purchase hstore) returns float as $$
    select ($1 -> 'price')::float;
$$ language 'SQL' IMMUTABLE;

CREATE INDEX "purchases by price" ON purchases (purchase_amount(purchase));

这只是一个理解的练习吗?HSTORE类型?或者您是否有一些真实的用例可以使您的真实数据的所有这些混淆变得值得?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL hstore 数组列上的索引 的相关文章

  • PostgreSQL:循环直到条件为真

    我正在尝试编写一个查询 该查询从指定值开始 循环 数据库 直到条件为真 例如 假设我在 TABLE 示例中有以下条目 id parent cond 1 True 2 1 False 3 1 False 4 2 False 我想要一个以 4
  • Entity Framework Core 多对多更改导航属性名称

    我有一个名为 LogBookSystemUsers 的表 我想在 EF Core 5 中设置多对多功能 我几乎可以正常工作 但问题是我的 ID 列被命名为SystemUserId and LogBookId但是当 EF 进行连接时它会尝试使
  • 新分配的序列不起作用

    在 PostgreSQL 中 我创建了一个新表并为其分配了一个新序列id柱子 如果我从 PostgreSQL 控制台插入记录 它可以工作 但是当我尝试从 Rails 导入记录时 它会引发异常 无法找到关联的序列 这是表格 d user me
  • 在 RavenDB 中创建更多类似的内容

    我的域中有这些文档 public class Article public string Id get set some other properties public IList
  • 在 PostgreSQL 中存储图像

    好吧 我正在开发一个应用程序 该应用程序将使用运行 PostgreSQL 的 Linux 后端向 Windows 机器提供图像 前端用 C NET 编写 尽管前端应该不重要 我的问题是 在 Postgres 中存储图像的最佳方法是什么 每张
  • 使用 $or 运算符时 MongoDB 查询会变慢

    我正在尝试对我的收藏进行此查询Audios var querySlow palabra regex keywords options i or p pais in interested accents languageCodeTatoeba
  • Django Postgres 全文 TrigramSimilarity 多个字段

    我想弄清楚如何使用TrigramSimilarity with unaccent对于多个字段 到目前为止我有 def filter by location self queryset location log info Filtering
  • 我可以在 WebGL 的 GLSL 中使用什么作为数组索引?

    是否只允许使用常量 或者我可以将其用于循环索引或任何其他动态值 In WebGL GLES2 是的 只允许使用常量 但是 如果您的代码可以展开 无论是由您自己还是由编译器 那么它就被视为一个常量 并且您有一个解决方法 例如 问题 unifo
  • PostgreSQL:用以前的值填充时间序列查询中的 NULL 值

    我有一个包含时间相关信息的数据库 我想要一个包含每分钟值的列表 像这样 12 00 00 3 12 01 00 4 12 02 00 5 12 03 00 5 12 04 00 5 12 05 00 3 但是 当几分钟内没有数据时 我得到如
  • 如何使 Postgres Copy 忽略大 txt 文件的第一行

    我有一个相当大的 txt 文件 9gb 我想将此 txt 文件加载到 postgres 中 第一行是标题 后面是所有数据 如果我直接 postgres COPY 数据 标头将导致数据类型与我的 postgres 表不匹配的错误 因此我需要以
  • 代表 PostgreSQL 中的未来时间

    我习惯于将过去的日期作为 UTC 存储在数据库中 因为那实际上是事件发生的时间 对于未来的日期 我会将其与特定时区一起存储 以避免诸如闰秒或时区规则更改之类的更改 Postgres 有timestamp with timezone 但在幕后
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 在 INSERT INTO....RETURNING 上添加 LEFT JOIN

    我的查询插入一个值并返回插入的新行 INSERT INTO event comments date posted e id created by parent id body num likes thread id VALUES 15757
  • PostgreSQL 字符串(255)限制 - Rails、Ruby 和 Heroku

    所以我有一个comments表的结构如下 Schema Information Table name comments id integer not null primary key body string 255 notified boo
  • 将 3d NumPy 数组重塑为 2d NumPy 数组时遇到问题

    我正在研究图像处理问题 我的数据以 3 维 NumPy 数组的形式呈现 其中 x y z 条目是图像 z 的 x y 像素 数值强度值 有 100000 张图像 每张图像为 25x25 因此 数据矩阵的大小为 25x25x10000 我试图
  • 如何禁用 PostgreSQL 的所有优化

    我正在研究查询优化 想知道每种优化对查询有多大帮助 上次 我得到了一个answer https stackoverflow com questions 22785064 how to disable enable different que
  • 无法确定“Npgsql.NpgsqlFactory”类型的提供程序工厂的提供程序名称

    我尝试运行一个测试项目 但没有成功 因为 npgsql 连接失败 我重新安装了 Npgsql Npgsql EntityFramework EntityFramwork 但问题仍然存在 结果消息 TestUserControl Contro
  • 禁用 Psql 输出中的换行

    在 Linux 中使用 Psql 时 如果 SQL 查询的结果包含许多列或长字符串数据 它将包装初始视图 只有当我滚动到一侧时 它才会停止包装并在单独的行上显示每一行 我尝试过各种 pset options https www postgr
  • 如何根据 2D 索引和 1D 值向量替换 Numpy 3D 数组中 z 轴的值

    我似乎很难理解数组索引 给出了什么 我确实有一个 3d 数组 如下所示 a 3d np zeros 3 3 3 二维索引数组 a 2d index np array 0 0 1 0 0 0 0 1 1 astype bool 以及要放入 3
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i

随机推荐

  • python:双端队列与列表性能比较

    在 python 文档中 我可以看到 deque 是一个特殊的集合 针对从左侧或右侧弹出 添加项目进行了高度优化 例如 文档说 双端队列是堆栈和队列的概括 名称是 发音为 deck 是 双端队列 的缩写 德克斯 支持线程安全 内存高效的追加
  • 如何让 IntelliJ IDEA 加载 org.slf4j.impl.StaticLoggerBinder 来运行 Kafka?

    我想从 IDEA 运行 Kafka 但收到以下错误 gt Task core Kafka main SLF4J Failed to load class org slf4j impl StaticLoggerBinder SLF4J Def
  • 将球从表面弹起

    我目前正在编写像 Breakout 这样的游戏 我想知道如何才能正确地将球从表面弹起 我采用了将速度旋转 90 度的简单方法 即 vx vy gt vy vx 这 毫不奇怪 效果不太好 如果我知道球的位置和速度 以及球将击中的点 但会反弹
  • Stack Overflow 如何生成 SEO 友好的 URL?

    什么是好的完整正则表达式或其他一些需要标题的过程 如何将标题更改为 URL 的一部分 例如 Stack Overflow 并将其变成 how do you change a title to be part of the url like
  • 在 C 中使用一行打印结构?

    C 中是否有任何可能的方法 通过使用任何函数或任何此类函数 以便我们可以使用单行打印不同数据类型结构中的内容 例如说 typedef struct ABC int a char b long c ABC1 要打印这个我们需要写 printf
  • 生成具有已知均值和方差的随机数

    从我正在阅读的一篇论文中知道 S t 1 k S t k C is a standard random variable with mean 0 and variance 1 如何用这个均值和方差生成这一系列随机值 如果有人有 C 或 C
  • 如何防止 CodeIgniter 3 中的会话劫持

    我知道这是一个重复的问题Codeigniter PHP 会话安全问题但遗憾的是 我的案例中建议的所有措施都失败了 这就是为什么我重复这个问题以及 2011 年提出的问题 现在它的答案已经过时了 所以请不要重复它 在我的场景中我启用了 con
  • 更改文件中的一个字符会导致 MSysGit 认为整个文件已更改

    我有一个包含 C 代码的 git 存储库 并且我正在运行MSysGit在 Windows 上 core autocrlf已打开 并且我正在使用 gitattributes from 这个问题 并且我 重新规范化 了我的回购协议 如底部所述这
  • malloc 中的信号 11 SIGSEGV?

    我通常喜欢解释清楚的问题和答案 但在这种情况下我实在无法给出更多的线索 问题是 为什么 malloc 给我 SIGSEGV 下面的调试显示程序没有时间测试返回的指针是否为 NULL 并退出 程序退出 INSIDE MALLOC 我假设 gl
  • 让 div 延伸整个高度

    有没有一种方法可以让 div 延伸到全高 我也有一个粘性页脚 这是网页 网站已删除 我所说的中间部分是白色的 div midcontent 它具有 CSS 值 midcontent width 85 margin 0 auto paddin
  • 提交后清除 JSF 表单输入值

    如果有一个表单 并且有一个文本框和一个按钮 那么在提交表单后如何删除文本框的内容
  • spring-boot web 应用程序在一段时间后失去连接 MySQL / RDS 的能力

    我有一个普通的 spring boot 1 2 x Web 应用程序 带有嵌入式 Tomcat 7 x 容器并连接到 RDS 实例 运行 MySQL 5 6 如果应用程序空闲一段时间 8小时 然后收到请求 则会抛出以下异常 BEGIN NE
  • Swift 崩溃 libobjc.A.dylib objc_msgSend

    我使用 crashlytics 来获取 AppStore 中我的应用程序的崩溃情况 一些用户遇到了崩溃 我似乎无法在我的机器上重现 通过 TestFlight 测试我的应用程序的少数朋友也没有 这是来自 Fabric 的日志 Thread
  • JavaScript 如何分配函数的“name”属性?

    在 JavaScript 中 当我定义这样的函数时 function aaa 我稍后可以通过以下方式访问该名称name属性 aaa name 这将返回 aaa 但是 当我通过定义函数时var 从技术上讲它应该是匿名函数 没有name属性 v
  • Android布局和定位问题

    最近我正在构建一个应用程序 现在我在布局和定位方面遇到了一些问题 事实上 我构建了我的布局 但是当我在更大的屏幕上测试时 所有内容都崩溃了 并且我的应用程序的外观不好 制作 UI 的最佳方式是什么 参考支持多屏 另外 在创建 UI 时 尽量
  • pandas.to_datetime 给出 OutOfBoundsDatetime 错误

    我有某种格式的数据 我想将其读入 pandas DataFrame 中 有些行给我一个错误 下面是其中一个字符串的一个最小示例 但我有几个它不起作用的地方 奇怪的是有些它起作用的地方 确切的错误是 OutOfBoundsDatetime 越
  • 按 Enter 键确定是否从 HTML 5 数据列表中选择了元素

    jQuery document body on input icdCodeInput function event 我有一个带有 icdCodeInput 类的 HTML 5 数据列表 当我使用鼠标或按 Enter 键从列表中选择一个项目时
  • 是否可以使用加载项在 Visual Studio 2012 中处理 Qt4 项目?

    我发现 Qt VS addin 1 1 x 可与 Visual Studios 包括 2010 一起使用 Qt VS addin 1 2 x 不支持 VS 2012 中的 Qt4 该插件是否有任何可以在 VS 2012 中处理 Qt4 的分
  • 在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

    以下查询 SELECT year id rate FROM h WHERE year BETWEEN 2000 AND 2009 AND id IN SELECT rid FROM table2 GROUP BY id year ORDER
  • PostgreSQL hstore 数组列上的索引

    我知道您可以在 hstore 列中的字段上创建索引 我知道您还可以在数组列上创建 GIN 索引 但是在 hstore 数组上创建索引的语法是什么 e g CREATE TABLE customer pk serial PRIMARY KEY