【问题标题】:N1QL - Insert-SelectN1QL - 插入选择
【发布时间】:2024-04-11 11:30:02
【问题描述】:

我正在尝试在 N1QL 中执行 insert-select 语句(插入其键/值是 select 语句结果的文档),但我无法理解语法。

我尝试执行:

insert into tempbucket (KEY payload.id,VALUE select * from default where payload.fooId in [100,101 ] )  RETURNING * ;

在一些变化中,但没有任何效果。

编辑:SELECT 语句是

select * from default where payload.fooId in [100,101 ]

我要创建的文档的 KEY 是字段 key 的值,VALUE 是上面提到的 SELECT 语句的整个 JSON。

【问题讨论】:

  • 请编辑您的问题并分离出以下三件事:用作源的 SELECT 语句; SELECT 中用作 KEY 的部分; SELECT 中用作 VALUE 的部分。为了清楚起见,请将每个段落放在单独的段落中。

标签: couchbase insert-into n1ql insert-select


【解决方案1】:

KEY 和 VALUE 必须引用查询中的表达式。

INSERT INTO tempbucket (KEY d.`key`, VALUE d)
SELECT d
FROM default d
WHERE payload.fooId IN [100,101 ]
;

【讨论】: