Autor | Zpráva | ||
---|---|---|---|
Martin02 Profil |
#1 · Zasláno: 7. 5. 2012, 16:53:30
Ahoj,
mám v MySQL tabulku, jejíž data se zobrazují někde na stránce. Na té stránce se do ní data také vkládají. Potřebuju, aby v tabulce bylo vždycky max. 50 řádků, pokud jich tam bude víc (to se stane, jen když někdo přidá nový řádek přes onu stránku) má se smazat ten, který je v tabulce nejdelší dobu, resp. má největší ID. Jak to udělat? Děkuji |
||
Casero Profil |
Martin02:
Můžeš to ošetřovat na té stránce, při vkládání nového záznamu (vložit, zkontrolovat počet, případně smazat). Další možnost je nechat to na MySQL, tzn. vytvořit si trigger. „který je v tabulce nejdelší dobu, resp. má největší ID.“ - nemělo by to být nejmenší ID? |
||
Martin02 Profil |
#3 · Zasláno: 7. 5. 2012, 21:55:04
Ano, mělo to být nejmenší ID.
Chtěl jsem ale vědět konkrétně jak na to? Jak vytvořit kód, co smaže řádek s nejmenším ID. |
||
Casero Profil |
Martin02:
„Jak vytvořit kód, co smaže řádek s nejmenším ID.“ delete from tabulka order by id limit 1 Nebo vložíš řádek a provedeš delete všech záznamů nad 50 takto: delete from tabulka where id in (select id from (select id from tabulka order by id desc limit 50,9999999) x) Nelze použít přímo "delete from tabulka order by id desc limit 50,9999999", protože MySQL u limitu příkazu delete neumožňuje offset. A řešení "delete from tabulka where id in (select id from tabulka order by id desc limit 50,9999999) není možné, protože MySQL zde nepodporuje LIMIT. |
||
Časová prodleva: 12 let
|
0