postgres中的“ UNION ALL”可以和“ INSERT INTO”一起使用吗?

迈克尔·巴顿

我可以在PostgreSQL 9.4中写这样的东西吗?

SELECT id FROM image_instance WHERE name = 'bioboxes/velvet-then-quast'

UNION ALL

INSERT INTO image_instance (name, sha256, image_type_id)
SELECT
    'bioboxes/velvet-then-quast',
    'digest_4',
    (SELECT id FROM image_type WHERE name = 'short_read_preprocessing_reference_evaluation')
WHERE NOT EXISTS (SELECT id FROM image_instance WHERE name = 'bioboxes/velvet-then-quast')
RETURNING id

我在上收到语法错误,INSERT因此我认为这是不可能的?我认为值得一问,以防我写错了。

我知道这不是线程安全的,但是这是针对单线程应用程序的。

弗拉基米尔·巴拉诺夫(Vladimir Baranov)

看来您在此之后。只需将您INSERT的CTE包装起来(使用WITH):

WITH
CTE
AS
(
    INSERT INTO image_instance (name, sha256, image_type_id)
    SELECT
        'bioboxes/velvet-then-quast',
        'digest_4',
        (SELECT id FROM image_type WHERE name = 'short_read_preprocessing_reference_evaluation')
    WHERE NOT EXISTS (SELECT id FROM image_instance WHERE name = 'bioboxes/velvet-then-quast')
    RETURNING id
)
SELECT id FROM image_instance WHERE name = 'bioboxes/velvet-then-quast'
UNION ALL
SELECT id FROM CTE
;

该查询将在其中插入一些行image_instanceidcolumn的生成的值将由RETURNING子句返回依次将UNIONed ALL具有idfrom的(上一个?)值image_instance

我不确定结果是什么,应该检查一下,但是语法应该正确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在teradata中使用union all语句和insert into语句吗?

可以将SELECT INTO子句与UNION [ALL]一起使用吗?

Postgres-UNION ALL与INSERT INTO哪个更好?

RDF 可以与 MarkLogic 中的 JSON 一起使用吗?

UNION ALL与INNER JOIN一起使用

将 UNION 和 WHERE 与多个表一起使用

可以将RequestPath与默认文件一起使用,也可以与dotnet core中的静态文件一起使用吗?

我可以将Postgres JSON列类型与Strongloop Loopback一起使用吗?

Postgres - 如何使用 UNION ALL 实现 UNION 行为?

Postgres中的动态UNION ALL查询

从单个CTE一起使用INSERT和/或UPDATE

是否可以在Postgres INSERT中声明和使用$ 1,$ 2等值?

postgres跨架构查询使用UNION ALL

我们可以在Junit 5中将@RepeatedTest和@ParameterizedTest一起使用吗

我可以在XUnit构造函数中自定义Fixture以便与Theory和AutoData一起使用吗?

可以将VueJS SFC组件与呈现的html中的模板一起使用吗?

pip可以与Visual Studio中的Python工具一起使用吗?

Webview中的远程网站可以与Phonegap一起使用吗?

模板可以与 Aurelia 中的自定义属性一起使用吗?

在Java中,可以将负数与子字符串一起使用吗?

我可以将DT软件包与RShiny中的tabsetpanel函数一起使用吗?

Windows 7 中的“切换用户”可以与 Active Directory 一起使用吗?

在Cerberus中,您可以将“ valueschema”与“ dict”类型一起使用吗?

可以将S3 Object中的SELECT内容与API网关一起使用吗?

python脚本中的熊猫可以与nodejs一起使用吗

可以在php中与echo一起使用带有样式的span标签吗?

util:RegistrySearch变量可以与Burn中的ExePackage的SourceFile一起使用吗?

在 laravel 调度程序中,monthlyOn() 可以与 between 一起使用吗?

maxItems / minItems可以与JSON模式中的$ ref一起使用吗