Why two tables? Define a unique table and  redefine your tables as views.

alp a écrit :
> Hello, 
>
> I have to tables(TBL_OBJECTS, TBL_TAGS) and I want to use the ROWID of the
> last inserted row from table TBL_OBJECTS to insert a new row in TBL_TAGS
> table with the ID_OBJECT foreign key set to the ROWID value from the
> precedent table. 
>
> This is the tables definition:
>
> CREATE TABLE TBL_OBJECTS (
>   ID    integer PRIMARY KEY NOT NULL,
>   DATA  text,
>   PATH  text
> );
>
> CREATE TABLE TBL_TAGS (
>   ID           integer PRIMARY KEY NOT NULL,
>   ID_TAG_TYPE  integer NOT NULL,
>   ID_OBJECT    integer NOT NULL,
>   TAG_DATA     text NOT NULL
> );
>
>
> My solution is:
>
> INSERT INTO TBL_OBJECTS
>   (DATA,
>   PATH)
>   VALUES ('val1', 'val2');
>
>   INSERT INTO TBL_TAGS
>   (ID_TAG_TYPE,
>   ID_OBJECT,
>   TAG_DATA)
>   VALUES (1, 2, 'a'); --doesn't count what value is inserted for ID_OBJECT
> as it will be changed in the next statement  
>
> UPDATE TBL_TAGS SET ID_OBJECT = (SELECT MAX(ROWID) FROM TBL_OBJECTS)
> WHERE ROWID = (SELECT MAX(ROWID) FROM TBL_TAGS);
>
> but I am sure there is a less complex one that you can point out to me.
>   

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

Reply via email to