2 problèmes avec with recursive et case
J'ai deux problèmes
Le premier est que je ne parviens pas à réaliser un delete dans un 'with recursive'. J'ai testé avec un delete simple qui fonctionne hors du 'with recursive'.
Y a-t-il quelque chose de spécial à faire?
Code:
1 2 3
| WITH RECURSIVE
...
DELETE FROM frame WHERE framename = 'test' |
Le second est l'utilisation du case.
Ce que j'essaye de faire dans l'exmple ci-dessous est:
si il y a des 'parentouside' renvoyer la liste des 'parentoutside'
sinon si il y a des 'lockedframes' renvoyer la liste des 'lockedframes'
sinon renvoyer une liste d'entrées (ou mieux les effacer, mais voir premier problème).
Le case en lui-même fonctionne: Si je remplace ce qui est en vert par des 'select count' je n'ai pas d'erreur.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
WITH RECURSIVE
...
SELECT
CASE
WHEN (SELECT COUNT (*) FROM parentoutside) > 0
THEN (SELECT * FROM parentoutside)
WHEN (SELECT COUNT (*) FROM lockedframes) > 0
THEN (SELECT * FROM lockedframes)
ELSE (SELECT * FROM frame WHERE framename in (select childname from allchildswithframe ))
END; |
Merci pour votre aide.