Autor Zpráva
jiri222
Profil
Dobrý den,
zajímalo by mě, jestli z nějaké tabulky v databázi, lze udělat pohled ? Resp. jestli atributy, které má tabulka lze nějakým způsobem vytvořit v pohledu a vkládat do nich data ?
Díky
lionel messi
Profil
jiri222:
zajímalo by mě, jestli z nějaké tabulky v databázi, lze udělat pohled ?

Áno, samozrejme.

Resp. jestli atributy, které má tabulka lze nějakým způsobem vytvořit v pohledu a vkládat do nich data ?

Pri splnení istých podmienok to taktiež možné je (tiež je nutné zvážiť či ide o dobrý nápad), bližšie informácie: dev.mysql.com/doc/refman/5.0/en/view-updatability.html
jiri222
Profil
Takže pokud to chápu správně podle dokumentace, tak pokud bych v daném aktualizovatelném pohledu chtěl provádět agregační funkci či dokonce spojovat vice tabulek pomocí LEFT JOIN či UNION, tak bych nemohl danou tabulku převést na pohled ?
Alphard
Profil
Pohled se většinou používá jako zjednodušení selectu, tedy pro čtení. A může obsahovat joiny, agregační funkce a téměř cokoliv. Není v tom problém, k tomu je určený.

Pokud ale chcete data ve view i modifikovat, musí být databázový engine schopný provést reverzní mapování a to vždycky nejde (ani teoreticky). Pokud použijete např. agregační funkci sum, je pochopitelné, že nemůže tento součet editovat... Jak by to měl server provést? A proto (dle mého názoru) MySQL dalo tyto konstrukce na blacklist. Joiny používat můžete, ale případná modifikace musí být provedena do jediné tabulky, takže musíte vyjmenovat sloupce odpovídající jedné tabulce.
jiri222
Profil
Takže pokud mám např. tabulku Člověk, která má atributy věk, pohlaví a narození. Tak nepůjde vytvořit pohled, který by mi umožnil vytahat informace z ostatních tabulek a k tomu navíc přidat tři sloupce (věk, pohlaví a narození) a napsat tam nové hodnoty ?
Díky
nightfish
Profil
jiri222:
Tak nepůjde vytvořit pohled, který by mi umožnil vytahat informace z ostatních tabulek a k tomu navíc přidat tři sloupce (věk, pohlaví a narození) a napsat tam nové hodnoty ?
Napsat kam jaké nové hodnoty? Nejlepší bude, když napíšeš příklad toho, jaká máš data a jakého výsledku chceš dosáhnout.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: