Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL pomocné proměnné, trigger

Ahoj,
mám datový model ve kterém mám tabulku ZBOZI s atributem pocet_ks_na_sklade a potom mám tabulku "nakupuje", kde je atribut pocet_ks_koupeno.
Teď bych potřeboval příkaz do SQL, pravděpodobně pomocná proměnná nebo trigger, aby se opravdu odečítalo z pocet_ks_na_sklade - pocet_ks_koupeno a databáze teda byla pořád aktuální, nějaké rady?
Díky!

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tohle se řeší v uložené proceduře a ještě zapouzdřené do transakce, abys měl jistotu, že se buď oba…
Jan Fiala 21.12.2016 17:02
Jan Fiala
Co sa tohto pripadu tyka, tak trigger tu naozaj nema co hladat. Kazdopadne, triggre maju svoje opods…
wam_Spider007 21.12.2016 19:28
wam_Spider007
Ano, veta je vseobecna. Znamena triggerum se vyhybej, pokud to nejde udelat jinak. Pokud to jinak (j…
Jan Fiala 21.12.2016 21:27
Jan Fiala
Nechci slovíčkařit, ale nemělo by místo slova "nejde" být "jde"? To by zcela měnilo smysl a podle mě…
host 21.12.2016 21:42
host
Ty jsi tu větu otočil: Triggerum se vyhybej, pokud to jde udelat jinak. Pokud to jinak (jednoduseji…
Jan Fiala 22.12.2016 06:43
Jan Fiala
Nic jsem neotočil... Jenom jsem upravil větu, aby dávala smysl. Ta druhá věta je v pořádku, tam jse…
host 22.12.2016 17:29
host
Promiň, oči mi už neslouží, spát mi nechutná, jíst mi nechutná. To jsem se zas unavila, unavila... nový
Jan Fiala 23.12.2016 10:14
Jan Fiala
... a ještě si navíc pleteš světové strany! :-p A tím bych tento Tvůj politováníhodný omyl uzavřel.… nový
host 23.12.2016 11:55
host
Se stranami jsem měl vždy problém. Proto jsem zůstal nestraníkem. Chtěl jsem k tobě zajít na návštěv… poslední
Jan Fiala 23.12.2016 13:17
Jan Fiala

Tohle se řeší v uložené proceduře a ještě zapouzdřené do transakce, abys měl jistotu, že se buď oba příkazy provedou nebo že se neprovede žádný.

Provedeš zápis do tabulky s nakupem a následně upravíš množství v tabulce se stavem skladu.
Trigger sice řešení je, ale čím víc triggerů tam dáš, tím větší to bude mít dopad na výkon => pokud můžeš, tak se triggerům vyhýbej.

Pak by ses měl zamyslet nad názvy tabulek. "Zboží" je obvykle název pro číselník, ne pro stav skladu. Skladů může být několik a pak to zboží bude úplně zavádějící.
O názvu "nakupuje" už vůbec nemluvím. Slovesem se objekty nepojmenovávají. U tebe by to mělo být spíš Nakupy, lépe Prijmy, protože jsou to příjmy do skladu.

Predstav si, ze budes mit stovky tabulek a pak budeš hledat, kam se zapisují příjmy do skladu. Napadne tě po roce, že to bude v tabulce "nakupuje"? Pokud chceš, aby to vypadalo profesionálněji (to platí i pro domácí úkol), vymysli si nějaký systém označování. Třeba všechny číselníky budou začínat Cis, všechny věci se skladem (příjmy, výdeje, stavy, inventury) pak Skl apod.
Takze pak budeš mít:
CisZbozi - ciselnik s položkami
SklPrijem - příjmy do skladu
SklStav - stav skladu
atd.

Když se na to pak koukneš v nějakém správci databáze, uvidíš vše, co spolu souvisí pěkně pohromadě

Nechci slovíčkařit, ale nemělo by místo slova "nejde" být "jde"? To by zcela měnilo smysl a podle mě by to pak bylo správně:

Ano, veta je vseobecna. Znamena triggerum se vyhybej, pokud to jde udelat jinak.
Pokud to jinak (jednoduseji) udelat nejde, pak ma jeho pouziti opodstatneni ;-)

Ty jsi tu větu otočil:

Triggerum se vyhybej, pokud to jde udelat jinak.
Pokud to jinak (jednoduseji) udelat nejde, pak ma pouziti triggeru opodstatneni

Původní věta s "jde" nemá smysl:
Pokud to jinak (jednoduseji) udelat jde, pak ma pouziti triggeru opodstatneni

Nic jsem neotočil... Jenom jsem upravil větu, aby dávala smysl.

Ta druhá věta je v pořádku, tam jsem nic neměnil:

Pokud to jinak (jednoduseji) udelat nejde, pak ma jeho pouziti opodstatneni

Ale první věta má mít význam takový, že se má triggerům vyhýbat, za předpokladu, že to jde udělat nějak jinak...

Se stranami jsem měl vždy problém. Proto jsem zůstal nestraníkem.
Chtěl jsem k tobě zajít na návštěvu, tak jsem vyrazil na východ, na Bučovice. Šel jsem dlouho, dlouho jsem i plaval a Hrom do Police pořád nikde. Nakonec jsem zase došel domů z druhé strany od Brna...

Zpět do poradny Odpovědět na původní otázku Nahoru