> Le 29 juin 2016 à 18:56, Olivier Mascia <o...@integral.be> a écrit : > > Clearly it does nothing. > Does this fit the intended behavior? > Would that mean 'or replace' in the context of an update statement is a void > operation?
Thanks Ryan and Simon for your answers. Indeed I forgot the OR REPLACE|FAIL|IGNORE|... in SQLite is related to the ON CONFLICT clause. I'd love to have some equivalent to the UPDATE OR INSERT statement (or variation on it) that some other engines expose. But clearly building it on top of a syntax using OR wouldn't be a nice idea: it would bring multiple interpretations to the 'OR' in this context, sometimes ON CONFLICT resolution and sometimes 'ON NOTHING DONE' resolution. Of course writing straight code in C/C++ it's rather simple to emulate situations where you want to update some values in an existing row, creating the row if needed. Though in larger programming tasks that ends up being rather tedious for business logic programmers. We hide this inside our C++ shell around SQLite C API and the solution is not bad but had some challenges for handling parameters to the statement(s) without risking them to be evaluated twice when re-using them for two distinct SQLite statements (while there is only one 'upsert' at the C++ logical level). All in all, I hope SQLite could bring up some sort of such UPDATE OR INSERT (which would be more easily named UPSERT in SQLite existing syntax), one day. Does adding such a new statement would fit the 'small' within "Small. Fast. Reliable. Choose any three." I'm not sure, I don't yet have enough background with it. -- Meilleures salutations, Met vriendelijke groeten, Best Regards, Olivier Mascia, integral.be/om _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users