Portál AbcLinuxu, 6. května 2025 20:52

Dotaz: Vyber viacerych tabuliek

4.7.2019 12:02 Martin
Vyber viacerych tabuliek
Přečteno: 941×
Odpovědět | Admin
Mam databazu ktora ma asi cca 200 tabuliek. Potreboval by som toto. Niekolko tabuliek ma zaciatok nazvu rovnaky. A s tychto tabuliek by som potreboval vymazat data starsie ako nejake obdobie, povedzme dva roky. Do databazy sa ukladaju kazdu minutu udaje z cidiel a tym padom je tam celkom dost udajov. A dalej sa spracuvaju inym systemom. Potom uz starsie data niesu potrebne. Vymazat z tabulky starsie data ako dva roky viem ale chcel by som to urobit v jednom prikaze nieco ako

DELETE * FROM nazovdatabazy.tab* WHERE ... a namiesto tab* by boli tabulky tab1,tab2,tab3 atd

chcem to spravit ako script, ktory sa bude spustat automaticky a tie tabulky po pridani pristroja mozu tiez vznikat automaticky. Cize aby som po pridani tabulky nemusel aktualizovat script. Prip. ak sa toto da riesit nejako inak?

dakujem,
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.7.2019 14:12 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Vyber viacerych tabuliek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je možné vypsat existující tabulky, projít v cyklu a sql vygenerovat dynamicky. V proceduře nebo externím skriptu. Jak přesně - to záleží na databázi.

Je mimochodem otázka, zde je použitý návrh optimální - proč třeba nejsou údaje v jedné tabulce (nebo několika málo tabulkách) a proč se třeba nepoužila specializovaná timeseries database. To ale není předmětem dotazu.
-- OldFrog
4.7.2019 14:49 Martin
Rozbalit Rozbalit vše Re: Vyber viacerych tabuliek
Jedna sa o MariaDB verzia 5.5.56 ak sa dobre pamatam, niesom autor a navrh a pouzite komponenty uz aktualne neovplivnim. Takze skusim nejaky ten script, ktory bude generovat sql prikazy. V databazach sa moc nevyznam, ovladam len nejake tie zaklady :-)
5.7.2019 18:20 debian+
Rozbalit Rozbalit vše Re: Vyber viacerych tabuliek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Sprav nieco take:
$tables=get_table_names_spec();
foreach($tables as $table)
    2roky_zmaz($table);
Ako zistit get_tables_names: https://mariadb.com/kb/en/library/show-tables/

V pripade, ze chces mat co najmenej dotazov (tak urob), tak:
$tables=get_table_names_spec();
get_2roky_zmaz_cmd($table);
mysq_dotaz($cmd);
Mozes poslat aj v jednom dotaze na databazu aj viac SQL prikazov, ale musis ich oddelit bodkociarkou.

Pripadne mozes pouzit cyklus v mysql pre MariaDB. Tie cykly su uz ale rozsirenina SQL pre MariaDB. Resp. nie je 100% garantovane, ze to bude fungovat na inom databazovom servere.

Alebo vyssia liga by bola pouzit proceduru, ktoru uz len z kodu zavolas.
5.7.2019 18:27 debian+
Rozbalit Rozbalit vše Re: Vyber viacerych tabuliek
OPRAVA ODSEKU:

V pripade, ze chces mat co najmenej dotazov (tak urob), tak:
$tables=get_table_names_spec();
get_2roky_zmaz_cmds($tables);
mysq_dotaz($cmd);
6.7.2019 21:43 Martin
Rozbalit Rozbalit vše Re: Vyber viacerych tabuliek
Dakujem, vyskusam ale vyzera to dobre

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.