On 29 Jun 2016, at 5:56pm, Olivier Mascia <o...@integral.be> wrote: > What's the expected behavior of statement "update or replace ..."? > (http://sqlite.org/lang_update.html) > > create table T(K integer primary key, V text); > update or replace T set V='data' where K=1; > > 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?
For the UPDATE OR REPLACE command, the REPLACE part comes into play only if an UPDATE would cause some sort of conflict. Since the UPDATE command does nothing in this case, there will be no conflict, so there will be no REPLACE. This command will return SQLITE_OK. It is an entirely legal command which does nothing in this situation. Under different circumstances (i.e. if the table already held data) the same command might result in a REPLACE. Simon. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users