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
Post a Comment