小编Eva*_*oll的帖子

postgresql 中多种记录类型的 generate_series

我有两个表,我想查询:pest_countspests看起来像:

CREATE TABLE pests(id,name)
AS VALUES
  (1,'Thrip'),
  (2,'Fungus Gnosts');

CREATE TABLE pest_counts(id,pest_id,date,count)
AS VALUES
  (1,1,'2015-01-01'::date,14),
  (2,2,'2015-01-02'::date,5);
Run Code Online (Sandbox Code Playgroud)

我想使用 postgres'generate_series来显示日期系列中发现的每种害虫的数量:

预期成绩

name         | date       | count
-------------+------------+-------
Thrip        | 2015-01-01 | 14
Thrip        | 2015-01-02 | 0
....
Fungus Gnats | 2015-01-01 | 0
Fungus Gnats | 2015-01-02 | 5
...
Run Code Online (Sandbox Code Playgroud)

我知道我需要类似以下的东西,但我不确定如何做剩下的事情:

SELECT date FROM generate_series('2015-01-01'::date, '2015-12-31'::date, '1 day') date
Run Code Online (Sandbox Code Playgroud)

postgresql

8
推荐指数
1
解决办法
2865
查看次数

SQL Server 是否支持自定义域?

PostgreSQL 支持DOMAIN规范,来自 SQL 2011 工作草案规范,

域是命名的用户定义对象,可以在某些可以指定数据类型的地方将其指定为数据类型的替代。域由数据类型、可能是默认选项和零个或多个(域)约束组成。

这使我们能够做一些非常酷的事情,例如通过不区分大小写的文本类型为电子邮件实现HTML5 规范的它确保所有访问数据库的客户端都对插入的数据进行完整性检查。

CREATE DOMAIN email AS citext
  CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );
Run Code Online (Sandbox Code Playgroud)

SQL Server 是否支持触发器系统之外的任何此类功能?

sql-server datatypes sql-clr sql-standard domain

8
推荐指数
1
解决办法
1199
查看次数

结果集的PostgreSQL网络压缩?

我正在阅读有关使用 PostgreSQL 进行网络压缩的内容,以查看是否有任何东西可以提供允许大结果集通过网络传输到远程 Web 服务器的内容。似乎没有这种东西。有没有解决方案可以做到这一点,这不是 SSL?

安全证书

似乎有一个涉及 SSL 的解决方案。阅读了与此相关的线程后,似乎该解决方案不再可取,因为它使系统容易受到CRIME worldwide错误的影响。

尽管不可取,但您似乎至少可以在当前重新启用 SSL 压缩,OPENSSL_DEFAULT_ZLIB但将来它将被删除,并且当前在 openssl 中的编译时被禁用

no-zlib         [default]
no-zlib-dynamic [default]
Run Code Online (Sandbox Code Playgroud)

postgresql network compression

8
推荐指数
1
解决办法
2318
查看次数

VODKA Indexing的命运如何,死了吗?

我在网上看到很多关于 PostgreSQLVodka 索引的提及。

在维基上它被定义为,

(Korotkov) Vodka 维护着两个索引文件,一个用于键,一个用于堆项目指针(发布)。实际上,每个索引文件都可以由不同的访问方法管理。这是 GIN 的概括,它使用 btree(尽管是它自己的 btree 代码,而不是 src/backend/access/nbtree)作为键和发布。键索引文件具有指向发布索引文件的项目指针。当postings 文件的访问方法需要移动一个索引项时,它必须安排更新keys 文件中的任何项指针。为此,提出了一个新的“amupdateiptr”访问方法功能。必要时,对该函数的调用将在 amgettuple 调用后立即到达。

除此之外,您可以在列表中看到这篇文章

我们正在走向以 postgres 为中心的公司,我们将继续在该公司发展。我们当然不需要为我们的国家产品 VODKA 提供资金:) 我想过众筹,但没有找到任何类似于 postgres 的产品的好案例。所以,我们决定走传统方式——建立我们自己的公司并从行业中赚钱。简而言之,我们推迟了我们的开发,因为许多其他非开发人员的业务,但从长远来看,我们将为 postgres 项目提供更多俄罗斯贡献者。Postgres 在俄罗斯是流行的数据库,但现在它从商业和政府那里得到了更多的利益,所以我很乐观。

这到底发生了什么,它是死了还是被合并到了别的东西里?

postgresql index

8
推荐指数
1
解决办法
1024
查看次数

如何在 SQL Server 中进行阶乘?

在 PostgreSQL 中,我经常想做一些事情,比如找到7的阶乘。我可以很简单地用

SELECT 7!;

-- PostgreSQL is so full featured
-- it even supports a prefix-factorial
SELECT !!7;
Run Code Online (Sandbox Code Playgroud)

甚至Excel 也有FACT

=FACT(7)
Run Code Online (Sandbox Code Playgroud)

如何使用 SQL Server 2017 Enterprise 做到这一点?

sql-server

8
推荐指数
2
解决办法
2823
查看次数

如何在 PostgreSQL 中编写十六进制文字?

你如何在 PostgreSQL 中编写十六进制文字?就像说我想要0xCC,如果我这样做;

SELECT 0xCC;
 xcc 
-----
   0
(1 row)
Run Code Online (Sandbox Code Playgroud)

所以 PostgreSQL 将 解析xcc为别名。

postgresql syntax

8
推荐指数
1
解决办法
2万
查看次数

如何将函数保存到 PostgreSQL 中的单个文件?

我维护一个使用 PostgreSQL 数据库的遗留应用程序。

该应用程序严重依赖于存储过程(又名函数)。

我想将这些函数保存到以函数名命名的文件中,以便我可以使用 VCS(版本控制系统)。

我知道我可以ALTER FUNCTION使用 using保存代码,PgAdmin但这一次只允许我保存一个函数。

我正在寻找一种自动保存所有功能的方法。有没有办法编写此任务的脚本?

postgresql backup version-control functions postgresql-9.1

7
推荐指数
1
解决办法
6253
查看次数

MySQL元数据函数在查询中获取投影列类型?

是否可以从 MySQL查询中获取字段类型,就像使用SHOW COLUMNS命令从表中获取它一样?例如从派生表中,

SELECT x -- presumedMetaFn(x) -- returns "int"
FROM (
  SELECT 1 AS x
  UNION SELECT 2
) AS t;
Run Code Online (Sandbox Code Playgroud)

鉴于上述查询,是否有一个函数或其他东西可以用来获取 x 的类型?PostgreSQL 通过系统信息函数提供此功能pg_typeof

SELECT x, pg_typeof(x)
FROM ( VALUES (1),(2) ) AS t(x);
 x | pg_typeof 
---+-----------
 1 | integer
 2 | integer
(2 rows)
Run Code Online (Sandbox Code Playgroud)

我不是在表上寻找元数据,而是从查询结果中寻找元数据。 随着psqlPostgreSQL的11+,这也可以通过运行\gdesc查询后。

mysql metadata

7
推荐指数
1
解决办法
2万
查看次数

从函数返回带有列名的 ResultSet

我有以下 postgresql 函数:

CREATE OR REPLACE FUNCTION readMessage(messageFor INT, qid INT = NULL, ctxt INT = NULL, messageFrom INT = NULL, byTimeStamp BOOLEAN = FALSE)
RETURNS SETOF message
AS $$
DECLARE
    sql varchar;
BEGIN
    sql := 'SELECT * FROM message WHERE (receiver_id IS NULL OR receiver_id = $1)';
    IF qid IS NOT NULL THEN
        sql := sql || ' AND queue_id = $2';
    END IF;
    IF ctxt IS NOT NULL THEN
        sql := sql || ' AND context = $3'; …
Run Code Online (Sandbox Code Playgroud)

postgresql java functions postgresql-9.1

7
推荐指数
1
解决办法
6867
查看次数

AWS DMS 创建没有 auto_increment 的表

我正在使用他们的 DMS 工具将我的数据库迁移到 Amazon 的 RDS。除了在源数据库上标记为 auto_increment 的列没有在目标数据库上标记为 auto_increment 之外,几乎所有内容看起来都不错。我还注意到我的索引和外键约束不包括在内。我在两端都运行 5.6 版。

有没有办法让 DMS 包含我的数据库的完整创建表?

mysql aws amazon-rds amazon-dms

7
推荐指数
1
解决办法
4498
查看次数