abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 1
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 24
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 785 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: mysql dotaz

19.10.2012 01:07 abc123
mysql dotaz
Přečteno: 237×
Ahoj, potřeboval bych poradit, jak vyřešit v mysql tento problém: mám tabulku s produkty jménem produkty, kde jsou sloupce produkt_id a vyrobce_id a potřeboval bych smazat všechny produkty vyrobce_id=3, ovšem nejen v tabulce produkty, ale i v dalších 5 tabulkách, kde ovšem je pouze sloupec produkt_id, ale už ne vyrobce_id. Děkuji

Odpovědi

rou7 avatar 19.10.2012 07:50 rou7 | skóre: 12 | Kutná Hora
Rozbalit Rozbalit vše Re: mysql dotaz
Pokud to budeš dělat přímo v MySQL tak bych použil Trigger After Delete.
CREATE TRIGGER 'mazani'
  AFTER DELETE ON produkty     
  FOR EACH ROW     
 BEGIN
  DELETE FROM 'dalsi tabulka' where produkt_id = OLD.produkt_id;
  ...
END
Možná tak nějak. Možná by to šlo i pře JOIN?
Tarmaq avatar 19.10.2012 11:04 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
Tohle je jedna moznost, druha by byla mit u tech cizich klicu na na tabulku produkt uvedeno ON DELETE CASCADE. Zrejme taky bude existovat uz nejaka tabulka vyrobci, tak by se melo mazat tam a o smazani vsech zavislych zaznamu by se postarala kaskada..
Don't panic!
19.10.2012 15:09 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Sice existuje tabulka vyrobci, ale tam jsou údaje o výrobci. Jediná tabulka, která obsahuje mimo jiné vztah mezi product_id a vyrobce_id je právě tabulka produkty a já potřebuju smazat ze všech tabulek všechny produkty, které patří jednomu výrobci.
Tarmaq avatar 19.10.2012 15:40 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
a toho daneho vyrobce nechcete mazat? Ten tam zustane?
Don't panic!
19.10.2012 15:58 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Přesně tak, daného výrobce mazat nechci, ani jeho další záznamy.
19.10.2012 15:35 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Omluvte amatéra, ale mohl bych poprosit o malé rozvedení? Děkuji
Tarmaq avatar 19.10.2012 15:42 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
je to after delete trigger, ktery se spusti v okamzik, pokud dojde k deletu z tabulky produkty. Hodnota OLD.produkt_id obsahuje id smazaneho produktu, takze lze napsat za sebe pet deletu z tech tabulek zavislych na tabulce produkty podle smazaneho id produktu.
Don't panic!
Tarmaq avatar 19.10.2012 16:59 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
Ted mi doslo, ze pokud je takovyto trigger potreba, znaci to ze na "dalsich tabulkach" chybi cizi klic do tabulky produkty. ON DELETE CASCADE je tedy stale nejcistsi, nejstrucnejsi, blablabla
Don't panic!
19.10.2012 17:21 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
A jako to tedy konkrétně udělám?
19.10.2012 15:41 kuka
Rozbalit Rozbalit vše Re: mysql dotaz
napr.
delete from t1 
  where produkt_id in ( select produkt_id from produkty where vyrobce_id = 3 )
reseni s triggery nebo kaskadami ma problem v tom, ze se to smaze vzdy bez ohledu na to, jestli jde o ten scenar "vsechny produkty" nebo jiny - to musis sam vedet, jestli by to vadilo nebo ne
19.10.2012 16:11 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Právě že tohle tvé řešení mi přijde nejlepší, jelikož nemůžu 100% zajistit, aby nedošlo k smazani z tabulky produkty, což by byl problém při řešení s triggery, pokud jsem je dobře pochopil.
19.10.2012 16:36 kuka
Rozbalit Rozbalit vše Re: mysql dotaz
Trigger proste v ramci smazani radku provede jeste dalsi akci a to bez ohledu na to, jestli mazes jeden radek nebo vsechny za vyrobce nebo uplne vsechny. Jestli to je ve tve aplikaci problem muzes rict pouze sam. Osobne jsem odpurcem umistovani logiky do triggeru, smysluplne pripady se ale samozrejme obcas najdou.
Tarmaq avatar 19.10.2012 16:56 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
No vidis, a ja jsem zase odpurcem reseni debordelizace mimo db, pokud to ta db umoznuje. Prijde mi ze ti porad unika, ze je jedno jestli se mazou vsechny produkty daneho vyrobce, nebo jen jeden, porad prece je v tech ostatnich peti tabulkach jen vazba na ten produkt, cili pokud je ten produkt smazan, maji byt smazany i ty dalsi relevantni zaznamy..
Don't panic!
19.10.2012 16:19 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Jeětě se zeptám, lze nějak napsat, aby delete from t1 byl i z např. tabulky t2 a t3 najednou? A aby ten select produkt_id from produkty where vyrobce_id = 3 byl i pro vyrobce_id = 5 a vyrobce_id = 10? Děkuji
19.10.2012 16:52 kuka
Rozbalit Rozbalit vše Re: mysql dotaz
Co to znamena najednou? Pokud to bude jedna transakce, tak se to udela "najednou". Delete muze byt jen z jedne tabulky. Pochopitelne ze select udelat lze - napr. in (3, 5, 10). Zacni ale asi nejakym tutorialem k SQL, jinak to nedopadne dobre.
Tarmaq avatar 19.10.2012 16:54 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql dotaz
Mohl bys trochu rozvest ten "jiny scenar"? Nejak me ted nenapada, co jsi tim myslel..

Prece kdyz mazu produkt s cislem 42 a v dalsich peti tabulkach mam nejakej rozsirujici informace toho produktu, tak ty chci smazat taky.
Don't panic!
19.10.2012 17:06 kuka
Rozbalit Rozbalit vše Re: mysql dotaz
Ja? Nemam tuseni, co ma tazatel v tech peti tabulkach a uz vubec ne, jestli to chce smazat a kdy. Ja jsem jen upozornil na to, ze navrhovana reseni neadresuji presne ten jeho dotaz. Proste na co se ptal, na to jsem mu odpovedel:-) Pokud by to cele melo slouzit k udrzovani referencni integrity, tak by tam mela byt kaskada (jestli ji MySQL umi) a nebylo by co resit.
19.10.2012 17:28 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Nejde o všech 5 tabulek, u 4 použít trigger i cascade nejspíše lze, ale u jedné z těch tabulek potřebuji vymazat pouze některé výrobce, některé ne a dokonce jenom někdy, né vždy stejné výrobce. Jedná se o tabulku obrázky s obrázek_id a produkt_id, kde je to jediné místo, kde je uložen tento vztah, který potřebuji pro identifikaci těch obrázků, jelikož se ten obrázek nejmenuje produkt_id.jpg ale blabla.jpg
19.10.2012 19:04 abc123
Rozbalit Rozbalit vše Re: mysql dotaz
Každopádně všem děkuji za rady a nastínění řešení, zbytek dogooglím a tímto považujte dotaz za vyřešený. Ještě jednou děkuji.

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.