问题标签 [postgresql-8.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 用于搜索可以在三个不同表中的唯一 ID 的 SQL 查询
我有三个控制产品、颜色和尺寸的表。产品可以有或没有颜色和尺寸。颜色可以有大小,也可以没有。
该unique_id
列存在于所有表中,是串行类型(自动增量),其计数器与三个表共享,基本上它作为它们之间的全局唯一 ID。
它工作正常,但是当我必须选择一些基于unique_id
.
因为我不知道我在哪里unique_id
寻找,我正在使用UNION
,如下所示:
有一个更好的方法吗?感谢您的任何建议!
编辑 1
基于@ErwinBrandstetter 和@ErikE 的回答,我决定使用以下查询。主要原因是:
1)由于unique_id
所有表中都有索引,我将获得良好的性能
2)使用unique_id
我会找到产品代码,所以我可以使用另一个简单的连接来获取我需要的所有列
postgresql-8.1 - 具有最小输出文件的 PostgreSQL 备份
当作为文件系统备份进行备份时,我们有一个超过 732 GB 的 Postgresql 数据库。当我们执行 pg_dump 时,我们可以将其降至 585 GB。如果我将 pg_dump 与 PITR 方法结合起来,这会给我提供最小备份数据文件大小的最佳备份吗?我的计划是运行 pg_start_backup,然后是 pg_dump,然后是 pg_stop_backup。我知道运行文件系统备份的文档状态,但我想要一个较小的备份数据集。然后我会复制 WAL 文件,然后在晚上备份它们。
sql - 如何在 PostgreSQL ORDER BY 子句中使用别名?
我有以下查询:
在 PostgreSQL 8.1.23 中运行它我得到这个错误:
查询失败:错误:列“global_stock”不存在
任何人都可以帮我把它工作?我首先需要可用的项目,然后是不可用的项目。非常感谢!
postgresql - 清理 postgres 中列的输入
所以,我认为这应该相当简单,但文档使它看起来有点复杂。我在 PostgreSQL(目前是 8.1)中编写了一个 SQL 函数,它对一些字符串输入进行了一些清理。值得一提的是,该字符串是一个 LDAP 专有名称,我希望逗号后始终没有空格 - 函数是 clean_dn(),它返回清理后的 DN。我想做同样的事情来强制对另一对列的所有输入为小写,等等——一旦我弄清楚这部分,这应该很容易。
无论如何,只要有人尝试插入或更新和修改该列,我希望此函数在表的“dn”列上运行。但是我能找到的所有规则示例似乎都假设所有插入/更新查询都会一直修改表中的所有列。在我的情况下,情况并非如此。我认为我真正想要的是一个仅更改值而不是返回 true 或 false 的约束,但这对于约束的 SQL 概念似乎没有意义。我是否让我的规则对新表执行更新?我是否必须为每个可能的新值组合创建一个新规则?如果我添加一个列,我是否必须检查并更新我的所有规则组合以反映每个可能的新列组合?
必须有一个简单的方法...
sql - sql滑动窗口 - 在间隔内找到最大值
我有滑动窗口问题。具体来说,我不知道我的窗口应该从哪里开始以及应该在哪里结束。我知道我的间隔/窗口的大小。
我需要找到提供最佳(或最差,取决于您如何看待)案例场景的窗口的开始/结束。
这是一个示例数据集:
假设我知道我的间隔需要 5 分钟。所以,我需要知道“价值”之和最高的 5 分钟间隔中包含的价值和时间戳。在我上面的例子中,从 '2013-02-20 00:04:00' 到 '2013-02-20 00:08:00' 的行将给我一个总和 400+500+600+500+400 = 2400 ,这是该表中 5 分钟内的最高值。
如果需要,我不反对使用多个表。但我试图找到一个“最佳情况”区间。结果可以是任何一种方式,只要它们净间隔。如果我在该时间间隔内获得所有数据点,它仍然有效。如果我得到起点和终点,我也可以使用它们。
我发现了几个 SQL 的滑动窗口问题,但还没有发现窗口大小是已知因素的任何地方,并且起点是未知的。
postgresql - Select value from an enumerated list in PostgreSQL
I want to select from an enumaration that is not in database.
E.g. SELECT id FROM my_table
returns values like 1, 2, 3
I want to display 1 -> 'chocolate', 2 -> 'coconut', 3 -> 'pizza'
etc. SELECT CASE
works but is too complicated and hard to overview for many values. I think of something like
But I couldn't succeed with arrays. Is there an easy solution? So this is a simple query, not a plpgsql script or something like that.
linux - 在 RHEL 上安装 Postgresql 8.1.17 服务器
我在 PostgreSQL 8.1.17 服务器上有一个生产数据库。我想将它从一台 Linux 服务器迁移到另一台。
在另一台 Linux 服务器上,我无法使用 rpm 安装 PostgreSQL 8.1.17 服务器。我从http://yum.postgresql.org/8.1/redhat/rhel-5-x86_64/链接获得了 rpm 文件。但是在使用 rpm -i postgresql-8.1.17-1PGDG.rhel4.x86_64.rpm 更新 rpm 存储库时,我遇到了错误。
错误:依赖项失败:postgresql-8.1.17-1PGDG.rhel4.x86_64 需要 libcrypto.so.4()(64bit) postgresql-8.1.17-1PGDG 需要 libpq.so.4()(64bit)。 rhel4.x86_64 libreadline.so.4()(64bit) 需要 postgresql-8.1.17-1PGDG.rhel4.x86_64 libssl.so.4()(64bit) 需要 postgresql-8.1.17-1PGDG.rhel4。 postgresql-8.1.17-1PGDG.rhel4.x86_64 需要 x86_64 libtermcap.so.2()(64bit)
我将如何解决这种依赖关系。
8.1 版本的生命周期结束 (EOL) 日期是 2010 年 11 月。这是否意味着我们将无法在 2010 年 11 月之后安装 8.1 版本。参考下面的链接。
http://www.postgresql.org/support/versioning/
我暂时不想升级 PostgreSQL 版本。
sql - 检查大表中的完整重复行
可以在此处找到包含所有相关上下文的原始问题:
向具有 4000 万条记录的表添加多列主键
我有一个包含 4000 万行且没有主键的表。在添加主键之前,我想检查表是否有任何重复条目。当我说重复条目时,我不仅仅指在特定列上重复。我的意思是整行重复。
我在上一个问题中被告知我可以进行EXISTS
查询以确定重复项。我该怎么做?
我正在运行 PostgreSQL 8.1.22。(通过运行获得此信息select version()
)。
arrays - Postgres 8.1 错误信息(数据类型)
我使用的是 8.1 版的 postgres。我想使用字符串来排列和取消嵌套函数。8.1 不支持 unnest,所以我使用通过 Google 和 stackoverflow 找到的代码创建了它。
我的错误信息如下: 错误:“未嵌套”列的类型为 text[],但表达式的类型为 text 提示:您需要重写或强制转换表达式。
我包括的过程有多个步骤。但是,当我设置表/列时,我确实将它们都指定为“文本 []”,并且我不理解错误消息中“表达式是文本类型”的部分。
创建“临时”表
代码:
创建表
创建“茶几”</p>
代码:
创建表
将字符串应用于“Oh My”上的数组函数到“temp”表中
代码:
插入 0 1
创建未嵌套函数
代码:
创建函数
将 unnest 函数应用到“endtable”中
错误代码:
提前感谢您提供的任何帮助或解释。
database - 我正在尝试进行大规模 PostgreSQL 更新,但无法找出正确的方法
我正在尝试在 PostgreSQL 8.1.23 中像这样运行数据库更新。我需要同时使用大约 800 个 id 进行此更新。任何帮助,将不胜感激。