2011-09-07 2 views
1

IBM Informix Dynamic Server version 11.50.FC6Informix SQL - Quel est le problème avec cette procédure stockée simple & | syntaxe de déclenchement?

Je tente d'exécuter une procédure stockée simple à partir d'un déclencheur de mise à jour. Ensemble, ils sont utilisés pour mettre à jour un champ avec l'horodatage actuel lorsqu'un autre champ de la même ligne est mis à jour.

Tableau sp_test:

id   (serial int, unique, not null, primary key)  
stat  (char(1), not null, default="A") 
add_date (date, not null, default today) 
upd_date (date, null) 

Le code de procédure stockée est:

create procedure upd_row_date_proc (cid int) 
update sproc_trig_rec set upd_date = current where id = cid; 
end procedure; 

Cette exécute bien et crée la routine, mais le déclencheur, je suis en train de mettre en œuvre des mises à jour ne fonctionne pas.

Le code de déclenchement est:

create trigger upd_row_date_trig 
update of stat on sproc_trig_rec 
after (execute procedure upd_row_date_proc(id)); 

J'ai essayé un tas de variations de syntaxe, mais ne peut le faire fonctionner.

J'ai généralement mon erreur sur le caractère ( de la 3ème ligne. Voici le code d'erreur:

201: A syntax error has occurred. 
Error in line 3 
Near character position 0 

Est-ce que quelqu'un sait ce que je fais mal dans la syntaxe du déclencheur? Ce type de mise à jour peut-il être défini lors de la création de la table ou dois-je l'accomplir en procédant comme indiqué ci-dessus?

Merci pour toute aide

+1

Il n'est pas 9,53 - s'il vous plaît essayer: SELECT 'DBINFO ('version', 'full') DE .systables "de Informix" O tab tabid = 1'. –

+0

IBM Informix Dynamic Server Version 11.50.FC6 – CheeseConQueso

Répondre

2

Cela a finalement fonctionné pour moi

create trigger ken_trig 
update of stat on sproc_trig_rec 
referencing old as ken_pre_upd 
for each row (execute procedure ken_proc(ken_pre_upd.id)); 
+1

Oui - c'est une syntaxe qui fera l'affaire. C'est probablement ce que tu cherchais. Voir [CREATE TRIGGER] (http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp?topic=%2Fcom.ibm.sqls.doc%2Fids_sqs_0584.htm) et les pages suivantes. –

+0

ok merci pour le lien – CheeseConQueso

Questions connexes