CREATE TABLE anime.user (
id serial primary key,
naam varchar(16),
wachtwoord varchar(40),
email varchar(60),
geactiveerd boolean default false,
datum_aangemeld date default now(),
ip_aangemeld inet,
laatst_online date,
laatst_ingelogt date
);
CREATE TABLE anime.users_sessies (
uid integer,
ip inet,
code varchar(40),
wanneer date default now()
);
Ik wil nu dat wanneer user.laatst_ingelogt word geupdate en de tijd daarvoor met de huidige tijd groter is als 3 minuten er in de tabel users_sessies een insert word gedaan...
Hoe zouw ik dit kunnen doen? Dus ik wil niet gewoon een insertje in een PHP bestand maar gewoon op de achtergrond wanneer user.laatst_ingelogt word geupdate.
Ik heb nu een oplossing op het forum van PHPfreakz gekregen:
CREATE RULE insert_sessie AS ON UPDATE TO user
WHERE AGE(old.laatst_online) > INTERVAL '3 MINUTE' DO ALSO
INSERT INTO users_sessies (uid, ip, code) VALUES (id, ip, code);
Maar hoe zorg ik ervoor dat het ip adress en code ook in die insert terecht komen?
@klaasjan dat is inderdaad wel wat maar hoe zit het dan als er tergelijk tijd meerdere leden inloggen? Wat gebeurd er dan allemaal met die tabel... Gaat dit dan wel allemaal goed?
Zoek daar maar even op dan krijg je zeg maar dat een row gelockt wordt en er niet in geschreven kan worden. Maar je kan het toch gewoon proberen wat er gebeurt?
Zoek daar maar even op dan krijg je zeg maar dat een row gelockt wordt en er niet in geschreven kan worden. Maar je kan het toch gewoon proberen wat er gebeurt?
Héé ja:) Zal ik morgen even naar kijken:p Ik heeft nu geen pit meer:p