Another solution is to precreate 100 rows and instead of INSERT
use UPDATE
to update the oldest row.
Assuming that the table has a datetime
field, the query
UPDATE ...
WHERE datetime = (SELECT min(datetime) FROM logtable)
can do the job.
Edit: display the last 100 entries
SELECT * FROM logtable
ORDER BY datetime DESC
LIMIT 100
Update: here is a way to create 130 "dummy" rows by using join operation:
CREATE TABLE logtable (time TIMESTAMP, msg TEXT);
INSERT INTO logtable DEFAULT VALUES;
INSERT INTO logtable DEFAULT VALUES;
-- insert 2^7 = 128 rows
INSERT INTO logtable SELECT NULL, NULL FROM logtable, logtable, logtable,
logtable, logtable, logtable, logtable;
UPDATE logtable SET time = DATETIME('now');
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…