Zadejte hledaný výraz...

MySQL trigger

naniccz
verified
rating uzivatele
(3 hodnocení)
28. 6. 2009 20:39:49
S triggery v MySQL jsem nedělal, a chtěl jsem začít - a hned to nefunguje.
Slouží to k duplikování záznamu do zálohovací tabulky. Ten samotnej INSERT (SELECT) funguje, jak ho mám donutit fungovat v triggeru?
Teď to hlásí
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
28. 6. 2009 20:39:49
https://webtrh.cz/diskuse/mysql-trigger/#reply327584
Jaromir Fojtu
verified
rating uzivatele
(10 hodnocení)
28. 6. 2009 21:08:15
Napsal naniccz;312647
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
Ehm, a zkousel ses podivat na ten sesty radek, co tam mas v tom SELECTu napsanou za p*covinu?
28. 6. 2009 21:08:15
https://webtrh.cz/diskuse/mysql-trigger/#reply327583
naniccz
verified
rating uzivatele
(3 hodnocení)
28. 6. 2009 21:12:11
Napsal syntaxsugar;312662
Ehm, a zkousel ses podivat na ten sesty radek, co tam mas v tom SELECTu napsanou za p*covinu?
Ten select funguje (jak jsem psal) - není problém selectovat konstantu. Spíš mám asi chybu v té obálce (FOR EACH ROW, atp.).
28. 6. 2009 21:12:11
https://webtrh.cz/diskuse/mysql-trigger/#reply327582
Jaromir Fojtu
verified
rating uzivatele
(10 hodnocení)
28. 6. 2009 21:34:43
Napsal naniccz;312665
Ten select funguje (jak jsem psal) - není problém selectovat konstantu. Spíš mám asi chybu v té obálce (FOR EACH ROW, atp.).
Kdyz myslis... me verit nemusis, ale MySQL bys mel
http://dev.mysql.com/doc/refman/5.4/en/insert-select.html
28. 6. 2009 21:34:43
https://webtrh.cz/diskuse/mysql-trigger/#reply327581
naniccz
verified
rating uzivatele
(3 hodnocení)
28. 6. 2009 21:35:06
Pokud bych to chtěl zjednodušit, tak potřebuju ten trigger mít tak, aby se v něm provedl jednoduchej insert, třeba INSERT INTO users VALUES ('pepa','heslo') pokaždý, když se trigger spustí. Když bych to vložil jako v 1. postu, tak to hází tu zmiňovanou chybu.
---------- Post was amended at 21:36 ----------
Napsal syntaxsugar;312675
Kdyz myslis... me verit nemusis, ale MySQL bys mel
http://dev.mysql.com/doc/refman/5.4/en/insert-select.html
Ten select opravdu funguje, doteď jsem ho volal (vč. toho insertu) přes PHP když jsem updatoval, ale chci to zkusit hodit do triggeru. (a viz příspěvek výše, řešme tedy ten problém pro jednodušší příkaz).
28. 6. 2009 21:35:06
https://webtrh.cz/diskuse/mysql-trigger/#reply327580
Kazan
verified
rating uzivatele
(4 hodnocení)
28. 6. 2009 23:54:11
http://weboveaplikace.info/2007/11/26/triggery-v-mysql/
Podivej se na priklad triggeru before_delete_knihovna a uprav si to podle toho ..
Jinak po jmenu tabulky pri insertu ma nasledovat seznam atributu (pokud ho chces omezit) a az za nim se pripadne pouzije SELECT, nebo se pletu? .. nejak nevim jak ten Tvuj INSERT muze fungovat (:
28. 6. 2009 23:54:11
https://webtrh.cz/diskuse/mysql-trigger/#reply327579
xdream
verified
rating uzivatele
(2 hodnocení)
29. 6. 2009 00:07:42
napis to normalne jak se backup radky pise.
A stejná chyba.
Ono když jsem se díval na příklady, tak mezi BEGIN a END psali spíš něco jako UPDATE sloupec = xyz, jakoby pro každej řádek...
Jako teoreticky by měl bejt základ provést nějakou sadu příkazů, což zjevně bude problém - nebo to neumim správně "začít". Jinak verze MySQL je 5.0.75
---------- Post was amended at 0:18 ----------
ještě můžu zkusit vytvořit proceduru (jestli se mi to povede), a tu volat v triggeru. až nebudu spát, tedy
29. 6. 2009 00:15:46
https://webtrh.cz/diskuse/mysql-trigger/#reply327577
Kazan
verified
rating uzivatele
(4 hodnocení)
29. 6. 2009 00:20:29
Neni zbytecny prvni sloupec v tabulce lang_backup, kdyz tam davas prazdny retezec?
29. 6. 2009 00:20:29
https://webtrh.cz/diskuse/mysql-trigger/#reply327576
naniccz
verified
rating uzivatele
(3 hodnocení)
29. 6. 2009 00:24:56
Napsal Kazan;312764
Neni zbytecny prvni sloupec v tabulce lang_backup, kdyz tam davas prazdny retezec?
Není, je to unikátní identifikátor. (AUTO_INCREMENT, mohl bych tam psát třeba NULL, ale jsem zvyklý '')
---------- Post was amended at 0:26 ----------
Tak jsem zkusil vytvořit proceduru
a opět stejná chyba (údajně) na řádku s INSERT-SELECTem, jenž samostatně funguje.
---------- Post was amended at 0:27 ----------
štve mě, že to ani neřekne poblíže čeho (near - jsou tam jen prázné apostrofy) je ta chyba, když už tam ta pomůcka je.
---------- Post was amended at 0:29 ----------
a stejně dopadnu i když je ten příkaz úplně triviální, jako třeba takže chyba je asi někde úplně jinde. Ale kdyby byly tyhle features vypnuté, tak to snad nebude říkat syntax error, že
---------- Post was amended at 0:31 ----------
Tak procedury DB podporuje, když dám BEGIN-END prázdné, tak ji vloží, a objeví se v information_schema. K sakru, asi se na to vykašlu.
29. 6. 2009 00:24:56
https://webtrh.cz/diskuse/mysql-trigger/#reply327575
Kazan
verified
rating uzivatele
(4 hodnocení)
29. 6. 2009 00:32:45
Tak uz sem na to prisel .. chyba je uplne jinde ..
Ze ty to vkladas v phpMyAdminovi a mas defaultni oddelovac (tedy strednik) (;
Zmen oddelovac, nebo ten trigger vkladej jinak nez v phpmyadminovi ... viz clanek, ktery jsem drive linkoval. Tam je to dokonce popsane
29. 6. 2009 00:32:45
https://webtrh.cz/diskuse/mysql-trigger/#reply327574
naniccz
verified
rating uzivatele
(3 hodnocení)
29. 6. 2009 00:41:07
Napsal Kazan;312773
Tak sem si dal tu praci a chybu, kterou si uvedl v prvni zprave mi to vypise pokud v triggeru pouziju nazvy sloupcu ve zpetnych uvozovkach ( ` <-- tuhle myslim (: )
Ja je teda nepouzivam, tak me to zprvu nenapadlo ..
Cili zkus misto: OLD.`code` napsat jen OLD.code atd ...
Právě jsem zkusil, a stále stejný problém. On opravdu není problém v tom mym příkazu. I když ho nahradim za úplně triviální insert, tak to nefunguje.
Asi to vyřešim na vrstvě PHP, jak jsem to dělal doposud. Holt MySQL není úplně dokonalá DB :-)
Přesto díky
29. 6. 2009 00:41:07
https://webtrh.cz/diskuse/mysql-trigger/#reply327573
Kazan
verified
rating uzivatele
(4 hodnocení)
29. 6. 2009 00:50:21
Napsal naniccz;312776
Právě jsem zkusil, a stále stejný problém. On opravdu není problém v tom mym příkazu. I když ho nahradim za úplně triviální insert, tak to nefunguje.
Asi to vyřešim na vrstvě PHP, jak jsem to dělal doposud. Holt MySQL není úplně dokonalá DB :-)
Přesto díky
viz vyse .. muj predpoklad byl spatny, ale ted uz by to melo byt ok .. pokud jsem trefil ten phpmyadmin .. S tou nedokonalosti to mozna ted bude na strane uzivatelu a ne DB (:
29. 6. 2009 00:50:21
https://webtrh.cz/diskuse/mysql-trigger/#reply327572
naniccz
verified
rating uzivatele
(3 hodnocení)
29. 6. 2009 12:08:44
Napsal Kazan;312773
...
Ze ty to vkladas v phpMyAdminovi a mas defaultni oddelovac (tedy strednik) (;
Zmen oddelovac, nebo ten trigger vkladej jinak nez v phpmyadminovi ... viz clanek, ktery jsem drive linkoval. Tam je to dokonce popsane
Díky, teď to šlape. Opravdu jsem to vkládal v PMA, a on měl tendenci to rozdělit na dva extra dotazy. Takže jsem mu oznámil, že jako oddělovač používám něco jiného (asdhgsdf) a už to šlo ;-)
29. 6. 2009 12:08:44
https://webtrh.cz/diskuse/mysql-trigger/#reply327571
Pro odpověď se přihlašte.
Přihlásit