| Autor | Zpráva | ||
|---|---|---|---|
| fibi Profil * |
#1 · Zasláno: 23. 5. 2011, 15:51:58
Snažím se napsat si trigger který potřebuje sestavit z různých dat název sloupce a jeho hodnotu potom použít v selectu.
A zaboha nemůžu přijít na syntaxi, respektive jestli to je vůbec možné. Tedy zjednodušeně : DECLARE var1 VARCHAR(50); SET @var1= 'popis_cz'; SELECT @var1 FROM tabulka WHERE ID = 1; //toto mi vrací text 'var1' a ne obsah ve sloupci 'popis_cz' Zkoušel jsem různě přidávat @, nebo `` a nic :-( Celý trigger : CREATE TRIGGER `apartmanyArchivAdd` BEFORE DELETE ON `bktour`.`apartmany_web` FOR EACH ROW BEGIN DECLARE bylo_id INT; DECLARE jazyk VARCHAR(50); SELECT Concat('C_druh.popis_', C_jazyk.kod) INTO @jazyk FROM apartmany_web JOIN apartmany ON apartmany.id = apartmany_web.id_apartman JOIN C_web ON C_web.id = apartmany_web.id_web JOIN C_jazyk ON C_jazyk.id = C_web.id_jazyk WHERE apartmany_web.id_apartman = OLD.id_apartman AND apartmany_web.id_web = OLD.id_web; SELECT id INTO bylo_id FROM apartmany_archiv WHERE id = OLD.id AND id_web = OLD.id_web ; IF bylo_id IS NULL THEN INSERT INTO `apartmany_archiv` (`id` , `id_web` , `pckod` , `nazev` , `id_lokalita` , `id_oblast` , `druh` , `create_time`) SELECT OLD.id_apartman, OLD.id_web, apartmany.pckod, apartmany.nazev, apartmany.id_lokality, apartmany.id_oblasti, jazyk, NOW() FROM apartmany JOIN C_druh ON apartmany.id_druh = C_druh.id WHERE apartmany.id = OLD.id_apartman ; END IF; END |
||
| TomášK Profil |
#2 · Zasláno: 23. 5. 2011, 16:19:47
Pokud vím, tak to jde jedině pomocí prepared statements.
|
||
| fibi Profil * |
#3 · Zasláno: 23. 5. 2011, 16:53:01
TomášK:
Tak to by nebyla dobrá zpráva, protože to jsem teď zkoušel a MySQL napsala že to nelze použít uvnitř triggeru :-( |
||
|
Časová prodleva: 14 let
|
|||
0