On 05.03.2011, at 02:21, Simon Slavin wrote:
>
> On 5 Mar 2011, at 1:18am, Enrico Thierbach wrote:
>
>> I do have a working solution for synching my databases (with randomly
>> generated ROWIDs). The problem I face
>> is that I cannot get the rowid of a newly created record to pass thru back
>> into the application using last_insert_row_id.
>
> I think you have no real reason to use rowid at all here. Make a different
> field called 'uniqueKey' or something, and use that for your random numbers.
Hi simon, hi list,
using a different field would break associations between tables. For example:
Assume we have tables a and b, and a join table as_to_bs. The a and b table
both have a uniqueKey column, as you suggest, that will be set by a trigger.
If two database applications create a and b objects that are joined (e.g.
a_rowid = INSERT INTO a VALUES("a")
b_rowid = INSERT INTO b VALUES("b")
INSERT INTO as_to_bs (a_id, b_id)
both databases would end up with (1, 1) entries in the as_to_bs table. Now I
could merge the a and b tables quite fine. In this process, however, the
entries in the a and b tables would be assigned new rowids. If I would then
merge the as_to_bs tables the association between the newly merged objects in A
and B would be lost.
Remember: as the application should not know about this replication thingy it
would still use the id or rowid to refer its object and not a uniqueKey column
or something.
So, the question remains: how can I either adjust the way rowids are
automatically generated or adjust each specific rowid when a row is inserted
and have this one returned in the last_row_id.
/eno
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users