Autor Zpráva
nufina
Profil *
Chtěla jsem zjednodušit příkaz INSERT INTO tabulka (a,b,c,d,e) values (neco, neco1, neco2, neco3) tím, že jsem pojmenovala proměné tabulky jako x1, x2, x3, x4 s tím, že název pole složím z "x" a čísla a cyklem to číslo dosadím přes proměnnou. To však hlásí chybu, protože takový název sloupce to nezná. Chtěla bych se ubezpečit, že to nejde a že musím striktně vyjmenovat všechny názvy polí (sloupců) v tabulce.
Předem díky
Kajman_
Profil *
musím striktně vyjmenovat všechny názvy polí (sloupců) v tabulce

Nemusíte, pokud ve values bude přesně tolik hodnot, kolik má tabulka sloupečků.
nufina
Profil *
Myslela jsem to trochu jinak. Mám tabulku, v ní 31 sloupců jako je dní v měsíci. Potřebuju zapisovat libovolně do některých dní. Např. jen 3., 15. a 28. Tak jsem to zkoušela zapsat insert into tabulka (mesicX) values..., kde mesicX je mesic3, pak mesic15 a pak mesic28. Mít jeden INSERT ane 31 INSERTů.
Kajman_
Profil *
Stačí přece vygenerovat dotaz
insert into tabulka (mesic3,mesic15,mesic28) values ('hodnota3','hodnota15','hodnota28')
es
Profil *
Myslela jsem to trochu jinak. Mám tabulku, v ní 31 sloupců jako je dní v měsíci.
Presne takto sa to robiť nemá.
Naštuduj si trochu základy návrhov databáz.
nufina
Profil *
Kajman_
Problém je ovšem ten, že já dopředu nevím, které to budou měsíce (a může jich být různý počet), je to podle toho, co vloží uživatel.
Proto jsem si chtěla ověřit, že nelze název sloupce dát jako složený výraz, který by byl použit v dotazu INSERT (nebo UPDATE) a tedy v programu coby 1 řádek místo 31 řádků.
Díky za reakce.
es
Nevím, co jste tím myslel. Možná se zdá divné, že mám tabulku s 31 sloupečky (proč to nedám do jednoho, že?), jenže já ty údaje z ní pak musím vkládat do výstupní sestavy do jednotlivých okýnek a kdybych to měla v jednom sloupci, tak by vzniknul neuvěřitelný výraz s vnořenými IIF, který bych musela do všech okýnek vložit.
Kajman_
Profil *
a tedy v programu coby 1 řádek místo 31 řádků

Jistěže můžete pro všechny vkládané dny cyklem vygenerovat jak hodnoty v závorce values, tak hodnoty (názvy slupečků) v závorce za názvem tabulky.


tak by vzniknul neuvěřitelný výraz s vnořenými IIF

Buď můžete pro každý řádek dělat select na dny v měsíci, nebo poskládat tyto data do sloupečků jako

select
(select hodnota from tabulka where podminky) den1,
(select hodnota from tabulka where podminky) den2,
(select hodnota from tabulka where podminky) den3,
(select hodnota from tabulka where podminky) den4,
...

if není třeba ani jeden.

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: