Thank you. create table if not exists t0 ( h integer primary key autoincrement, t0info text, unique(t0info));
t0 table allows duplicate t0info column, when in transaction. how to avoid duplicates for t0info column. Thanks in advance. Durga. On Thu, Jan 12, 2012 at 3:37 PM, Simon Slavin <slav...@bigfraud.org> wrote: > > On 12 Jan 2012, at 6:05am, Durga D wrote: > > > Insertion time, I am able to get the rowid from > > sqlite3_last_insert_rowid(); > > > > It's working fine. > > > > Now, t0info record already exists, that time , I should not update > > with latest rowid. I should fetch the corresponding h value, update in t1 > > table. Here, fetching is the problem: > > Yes, this is a problem. If the way your program works may cause it to try > to insert a t0 row which already exists, you do need at least two SQLite > commands. The two common structures are ... > > create table if not exists t0 ( > h integer primary key autoincrement, > t0info text); > > First option: > > INSERT OR IGNORE INTO t0 ... > SELECT h FROM t0 WHERE ... > > Second option: > > SELECT h FROM t0 WHERE ... > > Then see whether you got 0 or 1 row back. If you got 1 for back, the row > already exists and you can use that 'h' value. If not, you do the INSERT, > then use sqlite3_last_insert_rowid(). > > > > > One option is good if your application structure makes 'IF' commands > difficult. The other is good if executing SQLite calls slows it down > unacceptably. > > Simon. > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users