假设我有下表:
CREATE TABLE tags (
id int PK,
name varchar(255),
CONSTRAINT name_unique UNIQUE(name)
)
我需要一个查询,将插入不存在的标签,并返回所有请求的标签ID。考虑以下事项:
INSERT INTO tags (name) values ('tag10'), ('tag6'), ('tag11') ON CONFLICT DO NOTHING returning id, name
此查询的输出是:
+---------------+
| id | name |
|---------------|
| 208 | tag10 |
|---------------|
| 209 | tag11 |
+---------------+
我需要的是在输出中有tag6
。
与此表:
CREATE TABLE tags (
id serial PRIMARY KEY,
name text UNIQUE
);
只要此查询是唯一的,解决方案中的值就很长:
INSERT INTO tags (name)
VALUES ('tag10'), ('tag6'), ('tag11')
ON CONFLICT DO UPDATE name = EXCLUDED.name RETURNING id, name;
有点罗嗦,但我想不出其他任何东西:
with all_tags (name) as (
values ('tag10'), ('tag6'), ('tag11')
), inserted (id, name) as (
INSERT INTO tags (name)
select name
from all_tags
ON CONFLICT DO NOTHING
returning id, name
)
select t.id, t.name, 'already there'
from tags t
join all_tags at on at.name = t.name
union all
select id, name, 'inserted'
from inserted;
从标签中进行外部选择
可以看到插入新标签之前表格的快照。带有常量的第三列仅用于测试查询,以便识别插入了哪些行和未插入哪些行。
在PostgreSQL 9.5中出现了冲突更新/无操作功能。创建服务器和外部表将在PostgreSQL 9.2版本中出现。 当我对外部表使用ON CONFLICT DO UPDATE时,它不起作用,但当我对普通表运行相同的查询时,它起作用。下面给出了问题。 //对于普通表 O/P:查询成功返回:一行受影响,执行时间为5毫秒。 //对于外部表概念 //foreign_app为foreign tabl
问题内容: 我有一个带有两列唯一键的表: 我想在该表中插入一行,但是如果键存在,则什么也不做!我不希望因为键存在而产生错误。 我知道有以下语法: 但是是否有类似的东西: ? 问题答案: 是的,使用(即使已分配给自身,它也不会触发行更新)。 如果您不关心错误(转换错误,外键错误)和自动递增字段用尽(即使由于重复键而未插入行,它也会增加),请使用。
我想在Postgres中使用单个insert语句插入多行。 这里的问题是,如果单行插入失败,则所有其他成功的插入都将被回滚。有没有办法避免回滚并使查询返回失败行的列表。 否则,我会编写一个insert语句的循环。我正在使用节点pg模块。如果postgres不支持,有没有推荐的方法来达到我的要求? 编辑-1 完成上述查询后,select 语句返回 0 行。我正在寻找一个解决方案,其中插入前两行。
我试图通过设置服务器身份验证将本地文件加载到bigquery。我已经完成了以下步骤 > gcloud auth激活服务帐户命令 使用登录 gcloud身份验证登录 正在尝试执行python脚本以将文件上载到BigQuery 范围= 结果是 但我有足够的权限创建查询作业 我错过了什么?我以为我已经登录了。
我正在尝试通过NIFI从oracle数据库中提取数据。在画布中,我将文件大小为0 KB的“GenerateFlowFile”处理器安排为每5分钟运行一次。这只是为了在成功时触发“executesql”处理器。对于“executeSQL”,我将DB连接池服务设置为DBCPConnectionPool。我输入SQL查询“select*FROM sometable”。我的DBCPConnectionPo
错误:任务“:app:PreDebugandroidTestBuild”执行失败。 与项目':app'中的依赖项'com.android.support:support-annotations'冲突。应用程序(26.1.0)和测试应用程序(27.1.1)的解析版本不同。有关详细信息,请参见https://d.android.com/r/tools/test-apk-dependency-confl