Autor Zpráva
Mailo2008
Profil *
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 *
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 *
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;

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: