sql - Multiple inserts into SQLite getting data from other tables -


in sqlite, have simple message board want timestamp when each user first sees post.

create table messages (     message_id integer primary key,     mb_topic_id integer not null references mb_topics(mb_topic_id),     message_poster integer not null references users(user_id),     message_content text,     message_post_time timestamp default (strftime('%s', 'now')) )  create table messages_seen (     message_id integer not null references messages(message_id),     user_id integer not null references users(user_id),     seen_time timestamp default (strftime('%s', 'now')),     unique (message_id, user_id) ) 

what want do, in 1 sql statement if possible when user loads message thread, insert or ignore messages_seen userid (which have) each message_id matching mb_topic_id (which have).

so if user_id 4 , mb_topic_id 7, like:

select message_id messages mb_topic_id = 7 

and return (9,11,14,26). , i'd do:

insert or ignore messages_seen (message_id, user_id) values (9,4); insert or ignore messages_seen (message_id, user_id) values (11,4); insert or ignore messages_seen (message_id, user_id) values (14,4); insert or ignore messages_seen (message_id, user_id) values (26,4); 

is there way squeeze 1 statement? btw, server i'm running on running sqlite 3.6.20.

[edit: irrelevant suggestion sqlite 3.7.11 removed]

you use insert-select user id literal:

insert or ignore messages_seen (message_id, user_id)  select message_id, 4   messages   mb_topic_id = 7 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -