Autor | Zpráva | ||
---|---|---|---|
Mailo2008 Profil * |
#1 · Zasláno: 4. 10. 2008, 12:05:26
Zdravim,
mam tabulku, kde mam ID, autoincrement. Poterbujem vytvorit v tabulke dalsi stlpec, ktory bude v tvare prefix + ID teda pre ID 100, bude napriklad v dalsom stlpci "a100" Potrebujem to spravit cez nejaku proceduru, alebo nejak tak, aby sa aj vzdy po pridani noveho riadku do DB vytvorila hodnota aj v dalsom stlpci. viete mi pomoct? ide o mysql DB dakujem! |
||
Kajman_ Profil * |
#2 · Zasláno: 4. 10. 2008, 12:14:58
Sice nevím, k čemu tento konkrétní obsah bude dobrý (vždy ho můžete vypsat jako concat('a',id)), ale od verze 5.0 lze použít triggery...
http://www.linuxsoft.cz/article.php?id_article=1019 http://www.linuxsoft.cz/article.php?id_article=1026 |
||
Mailo2008 Profil * |
#3 · Zasláno: 4. 10. 2008, 15:09:16
vytvoril som si trigger:
SQL dopyt: CREATE trigger addFECode ALTER INSERT ON vyrobky FOR each ROW BEGIN UPDATE vyrobky SET FEcode = old.id; ale mysql hlasi chybu: MySQL hlási: Dokumentácia #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 'alter insert on vyrobky for each row begin UPDATE vyrobky SET FEcode = ol' at line 2 po googlovanie som nasiel: . AFTER INSERT triggers cannot modify the data anymore, but can be used to initiate actions on other tables, for example to implement auditing mechanisms. ako teda mozem zmenit hodnotu v tabulke, do ktorej pridavam data? |
||
Kajman_ Profil * |
Pletete si alter a after, ale ono tam má být stejně asi before insert, když chcete při insertu něco změnit. Také dáváte old.id, které při insertu být nemůže... co to zkusit takhle nějak
CREATE trigger addFECode BEFORE INSERT ON vyrobky FOR each ROW BEGIN SET new.FEcode = new.id; END; |
||
Časová prodleva: 16 let
|
0