Trigger - Prepared Statemet – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Trigger - Prepared Statemet – MySQL – Fórum – Programujte.comTrigger - Prepared Statemet – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Dejv
~ Anonymní uživatel
27 příspěvků
29. 9. 2013   #1
-
0
-

Zdravím. Potřebuji vytvořit trigger ve kterém se bude vkládat řádek do již existující tabulky. Název tabulky se vytáhne z jiné tabulky. viz kód:

delimiter //
create trigger adding after INSERT on main FOR EACH ROW
BEGIN
   DECLARE mesic INT;
   DECLARE rok INT;
   DECLARE tabulka varchar(8);
   SELECT YEAR(Added) INTO rok from main WHERE ID = NEW.ID;
   SELECT MONTH(Added) INTO mesic FROM main WHERE ID = NEW.ID;
   SET tabulka = CONCAT(mesic, rok, 'Alfa');
   set @s = CONCAT('INSERT INTO ',tabulka, ' SET ID = ', NEW.ID,);
   prepare statement from @s;
   execute statement;
   deallocate prepare statement;       
END;//
delimiter ;

Již jsem zjistil že v triggerech nejde používat prepare statement... Jde to nějak obejít ?

Díky.

Nahlásit jako SPAM
IP: 89.102.145.–
Reklama
Reklama
Kit+11
Guru
29. 9. 2013   #2
-
0
-

#1 Dejv
Nejlépe to obejdeš tak, že nebudeš vymýšlet ptákoviny a cílovou tabulku budeš mít jednu. SQL dotaz se tím krásně zjednoduší:

 INSERT INTO Alfa (ID, Added) VALUES (NEW.ID, NEW.Added);

Jak tak na to ale koukám, tak je to jeden velký nesmysl, protože všechno už máš v té primární tabulce. Celý trigger je tedy zcela zbytečný.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Trigger — založil RePRO

Prepared statements — založil Stormy Weather

MySQLi a prepared statements — založil Kuboslav

Trigger nad více tabulkama — založil Honza

TRIGGER MYSQL prosím o radu — založil Aricak

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý