PRAGMA foreign_keys=ON; BEGIN TRANSACTION; CREATE TABLE IF NOT EXISTS Online ( Username varchar(64) not null, RemoteHost varchar(64) not null, RemotePort smallint unsigned not null, Stamp timestamp); CREATE TABLE IF NOT EXISTS Topics ( id integer not null primary key, Retain char not null, Topic varchar(255) not null, Value text, PubUser varchar(64) not null, PubDate datetime not null, PubHost varchar(64) not null, Stamp timestamp); CREATE INDEX IF NOT EXISTS RemoteHost on Online (RemoteHost); CREATE INDEX IF NOT EXISTS Username on Online (Username); CREATE UNIQUE INDEX IF NOT EXISTS User on Online (Username, RemoteHost); CREATE INDEX IF NOT EXISTS PubDate on Topics (PubDate); CREATE INDEX IF NOT EXISTS PubHost on Topics (PubHost); CREATE INDEX IF NOT EXISTS PubUser on Topics (PubUser); CREATE INDEX IF NOT EXISTS Topic on Topics (Topic); CREATE TRIGGER IF NOT EXISTS Online_update_t AFTER UPDATE ON Online BEGIN UPDATE Online SET Stamp = strftime('%s', 'now') WHERE Username = old.Username; END; CREATE TRIGGER IF NOT EXISTS Online_insert_t AFTER INSERT ON Online BEGIN UPDATE Online SET Stamp = strftime('%s', 'now') WHERE Username = new.Username; END; CREATE TRIGGER IF NOT EXISTS Topics_update_t AFTER UPDATE ON Topics BEGIN UPDATE Topics SET Stamp = strftime('%s', 'now') WHERE id = old.id; END; CREATE TRIGGER IF NOT EXISTS Topics_insert_t AFTER INSERT ON Topics BEGIN UPDATE Topics SET Stamp = strftime('%s', 'now') WHERE id = new.id; END; COMMIT;