MySQL Tabelle mit Limit einträgen....

MelcomB56

Mitglied
Hallo und frohes Fest allerseits !

Ich habe eine kleine bescheidene Frage. Kann man eine Tabelle so erstellen das sie nur max 100 einträge zulässt und wenn der 101ste eintrag kommt den ersten damit überschreibt ? Wenn JA ... WIE ^^

LG

Melcom
 
Hallo,

mit Triggern kann man das machen.

PHP:
mysql> create table a(id int not null primary key auto_increment);
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ~~
mysql> create trigger limit_a_rows before insert on a for each row
    -> begin
    ->     if (select count(*) > 3 from a) then
    ->         insert into `too many rows`() values();
    ->     end if;
    -> end; ~~
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql> insert into a() values();
Query OK, 1 row affected (0.01 sec)

mysql> insert into a() values();
Query OK, 1 row affected (0.01 sec)

mysql> insert into a() values();
Query OK, 1 row affected (0.00 sec)

mysql> insert into a() values();
Query OK, 1 row affected (0.00 sec)

mysql> insert into a() values();
ERROR 1100 (HY000): Table 'too many rows' was not locked with LOCK TABLES

Das überschreiben ab dem 100sten Eintrag ist dann von Dir zu programmieren. Ein paar Dinge die mir zuerst dazu einfallen.

-- benutze einen created_timestamp zum einfügen der rows (damit hast du den "Anker" um zu sortieren), da Du Dir ja irgendwie merken mußt was als letztes aktuell war.
-- Evtl. brauchst Du eine Hilfstabelle?
-- benutzen mehrere User die Tabelle?
...




Frohes Fest.
 
Hallo und dir auch ein frohes.

Es soll im endeffekt eine Tabelle sein wo gewisse daten gespeichert werden die wiederum von php als eine so zu sagen LOG-Datei oder ausgegeben werden.

Beispiel:

Ein User löscht einen eintrag und dieser löschvorgang wird dann quasi in die tabelle geschireben und das später wieder mit einem anderen script aufrufen zu können um das nachfolziebar zu machen.

Hoffe ich konnte das gut erklären soweit.

Grüsse

Melcom
 
Zurück