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.
