2016-06-19 4 views
2

J'essaie d'exécuter une instruction insert-select dans N1QL (en insérant des documents indiquant que leur clé/valeur est le résultat d'une instruction select) et je n'arrive pas à comprendre la syntaxe.N1QL - Insert-Select

J'ai essayé d'exécuter:

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

dans quelques variations, mais rien ne fonctionnait.

Edit: L'instruction SELECT est

select * from défaut où payload.fooId dans [100101]

La clé des documents que je veux créer est la valeur du champ key et la valeur est le JSON entier de l'instruction SELECT mentionnée ci-dessus.

+0

Veuillez éditer votre question et séparer les 3 choses suivantes: l'instruction SELECT à utiliser comme source; la partie du SELECT à utiliser comme clé; la partie du SELECT à utiliser comme VALEUR. Veuillez les mettre dans un paragraphe séparé pour plus de clarté. – geraldss

+0

Merci, édité. – shays10

Répondre

1

La clé et la valeur doivent référencer les expressions de votre requête.

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