小编Erw*_*ter的帖子

结合 2 个 SELECT 查询并在 PostgreSQL 中打印结果

我有 2 个查询,我想将它们一起使用以向用户生成一个输出结果。输出向用户描述了从 A 到 B 的旅程。当我尝试将两个查询与UNION以下内容结合时,我不断收到语法错误:

Query failed: ERROR: syntax error at or near "UNION" LINE 6: UNION ^
Run Code Online (Sandbox Code Playgroud)

我看过一个类似的问题,但提供的解决方案和讨论似乎不起作用。

$name = pg_escape_string($_POST['name']); // Start destination from user input
$name2 = pg_escape_string($_POST['name2']); // End destination from user input

//If no results are given, the following query below will execute instead.

if (pg_num_rows($result) == 0 ) {

$query = "SELECT dt1.name as name1,dt1.time as time1,dt2.name as name2,dt2.time as time2
From departure_times as dt1
inner join departure_times as dt2 …
Run Code Online (Sandbox Code Playgroud)

postgresql php union

0
推荐指数
1
解决办法
9239
查看次数

对特定配对的唯一约束

我试图找出一个特殊的UNIQUE约束:表中有很多列Users,但只有这两列与问题相关:

id bigint,
active boolean,
...
Run Code Online (Sandbox Code Playgroud)

我想允许多行具有相同的id-其中只有一行可能具有active = true.

例如,可以有很多行包含id = 1active = false,但只有一行可以包含id = 1active = true

postgresql database-design unique-constraint

0
推荐指数
1
解决办法
999
查看次数

新版本的 PostgreSQL 中 IDENTITY 是否连续?

现在我serial在PostgreSQL 13中生成表主键,但是今天我发现ID跳跃并且ID空间有很大的间隙。会浪费很多ID。我阅读了文档,发现 PostgreSQL 有identity作为 SQL 标准生成的主键。我找到了在新版本的PostgreSQL中使用的建议identity,但我不知道ID是否连续。

在 PostgreSQL 13 中我应该怎么做才能获得没有间隙的主键 id?

在此输入图像描述

解决方案1:我尝试更改serialidentity这样:

BEGIN;
ALTER TABLE public.article ALTER id DROP DEFAULT; -- drop default

DROP SEQUENCE public.article_id_seq;              -- drop owned sequence

ALTER TABLE public.article 
-- ALTER clientid SET DATA TYPE int,              -- not needed: already int
   ALTER id ADD GENERATED ALWAYS AS IDENTITY (RESTART 2270886);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

还是有差距。

解决方案 2:我尝试添加关于我的应用程序插入文章的 Redis 分发锁,如下所示:

def save_single(guid, pub_time, title, author, content, source, link):
    if content …
Run Code Online (Sandbox Code Playgroud)

postgresql identity

0
推荐指数
1
解决办法
1061
查看次数

如何在复制函数中使用变量值

我想使用COPYPostgres 中的函数将数据发送到 .csv 文件。但我使用匿名块,所以我的表名应该是变量的值。

COPY (SELECT cname.portal from user) To '/tmp/out.csv' With CSV;
Run Code Online (Sandbox Code Playgroud)

cname我的匿名块内的变量在哪里。我尝试使用EXECUTE格式,但它也不起作用。我试过类似的东西:

EXECUTE format ('    COPY (select * from %s.portal,cname ) To '/tmp/out1.csv' With CSV');
Run Code Online (Sandbox Code Playgroud)

postgresql dynamic-sql plpgsql copy

-3
推荐指数
1
解决办法
6313
查看次数