On Tue, 4 Nov 2014 21:47:20 +0000
"Drago, William @ CSG - NARDAEAST" <william.dr...@l-3com.com> wrote:

> I've been pulling my hair out trying to figure how to use EXISTS.

I have several examples at
http://www.schemamania.org/sql/#missing.table.  

> Is there a better/recommended way in SQLite to check if a record
> exists?
> 
> static bool IDisDuplicate(string dbFileName, int id)

Yes.  Assert, don't check!  

Your function is checking for duplicates.  I could be wrong of course,
but I suspect that you're checking for duplicates to do something about
it in the database.  If so, between the time you check and the time you
"do something" that duplicate could have gone away and another arisen.
Cache coherency folks call that a write-after-read error.  

The way to avoid that is to put everything on the broad shoulders of
SQLite, viz, 

        insert/update/delete T as t
        -- ... --
        where exists ( 
                select 1 from T
                where something = t.something
                group by something
                having count(*) > 1 
        );

HTH.  Exists is confusing at first, and consequently
under-appreciated.  

(BTW, I dis duplicates, too.  Despise them, in fact.) 

--jkl
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to