Hi Artem,

have you tried with UPSERT?
Here you can find all the references:

http://www.orientechnologies.com/docs/last/orientdb.wiki/SQL-Update.html

Regards

Luigi


2015-02-04 13:25 GMT+01:00 Artem Shoobovych <[email protected]>:

> Hi there!
>
> Lately, I've been playing with OrientDB of 1.7.10 and now 2.0.1. And
> currently I am stuck with poor SQL syntax or my misunderstanding of it.
>
> What I want is to create an instance of a class if it does not exist. I
> tried different solutions, like `ifnull`, `first` and `if`. But it seems to
> work only on existing values.
>
> For example, let us have a class `City` with only one instance - `{"name":
> "Lisboa"}`.
>
> These do not work:
>
>     select if(count(select City where name = "Krakow") < 1, null, (insert
> into City set name = "Krakow" return @rid))
>
>
>     select ifnull((select @rid from City where name = "Krakow"), (insert
> into City set name = "Krakow" return @rid))
>
>
>     select first((select @rid from City where name = "Krakow"), (insert
> into City set name = "Krakow"))
>
>
> I believe I need some kind of `exists` operator:
>
>     select if( exists(select from City where name = "Krakow"), (select
> @rid from City where name = "Krakow"), (insert into City set name =
> "Krakow"))
>
>
> Are there any possibility for this except stored functions?
>
> Thanks!
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to