我有两个表,我想查询:pest_counts和pests看起来像:
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 支持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 是否支持触发器系统之外的任何此类功能?
我正在阅读有关使用 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的Vodka 索引的提及。
在维基上它被定义为,
(Korotkov) Vodka 维护着两个索引文件,一个用于键,一个用于堆项目指针(发布)。实际上,每个索引文件都可以由不同的访问方法管理。这是 GIN 的概括,它使用 btree(尽管是它自己的 btree 代码,而不是 src/backend/access/nbtree)作为键和发布。键索引文件具有指向发布索引文件的项目指针。当postings 文件的访问方法需要移动一个索引项时,它必须安排更新keys 文件中的任何项指针。为此,提出了一个新的“amupdateiptr”访问方法功能。必要时,对该函数的调用将在 amgettuple 调用后立即到达。
我们正在走向以 postgres 为中心的公司,我们将继续在该公司发展。我们当然不需要为我们的国家产品 VODKA 提供资金:) 我想过众筹,但没有找到任何类似于 postgres 的产品的好案例。所以,我们决定走传统方式——建立我们自己的公司并从行业中赚钱。简而言之,我们推迟了我们的开发,因为许多其他非开发人员的业务,但从长远来看,我们将为 postgres 项目提供更多俄罗斯贡献者。Postgres 在俄罗斯是流行的数据库,但现在它从商业和政府那里得到了更多的利益,所以我很乐观。
这到底发生了什么,它是死了还是被合并到了别的东西里?
在 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 做到这一点?
你如何在 PostgreSQL 中编写十六进制文字?就像说我想要0xCC,如果我这样做;
SELECT 0xCC;
xcc
-----
0
(1 row)
Run Code Online (Sandbox Code Playgroud)
所以 PostgreSQL 将 解析xcc为别名。
我维护一个使用 PostgreSQL 数据库的遗留应用程序。
该应用程序严重依赖于存储过程(又名函数)。
我想将这些函数保存到以函数名命名的文件中,以便我可以使用 VCS(版本控制系统)。
我知道我可以ALTER FUNCTION使用 using保存代码,PgAdmin但这一次只允许我保存一个函数。
我正在寻找一种自动保存所有功能的方法。有没有办法编写此任务的脚本?
是否可以从 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查询后。
我有以下 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) 我正在使用他们的 DMS 工具将我的数据库迁移到 Amazon 的 RDS。除了在源数据库上标记为 auto_increment 的列没有在目标数据库上标记为 auto_increment 之外,几乎所有内容看起来都不错。我还注意到我的索引和外键约束不包括在内。我在两端都运行 5.6 版。
有没有办法让 DMS 包含我的数据库的完整创建表?
postgresql ×6
functions ×2
mysql ×2
sql-server ×2
amazon-dms ×1
amazon-rds ×1
aws ×1
backup ×1
compression ×1
datatypes ×1
domain ×1
index ×1
java ×1
metadata ×1
network ×1
sql-clr ×1
sql-standard ×1
syntax ×1