La nécessité de le faire dans une instruction est due à la façon dont le programme gère les instructions sql. L'instruction sql est stockée dans une colonne d'une autre table et exécutée via un ouvert sur un jeu d'enregistrements. L'ouverture répond avec une erreur de caractère invalide si un point-virgule est dans l'instruction. Le scénario: Dans certaines conditions, je souhaite mettre à jour un champ particulier dans un enregistrement de la base de données A, et enregistrer le fait de cette modification dans une table de journal par une insertion.Comment puis-je insérer dans une table et mettre à jour une autre table avec la même instruction sql?
Voici un exemple en utilisant deux déclarations:
update data_table a set field1='new value' where identifier=10;
insert into log_table (action_taken)
values('record ' || a.identifier || ' had field1 changed to ' || a.field1);
Est-il possible de le faire?
Vous pouvez ajouter la deuxième déclaration comme un déclencheur ... – meagar
Vous ne pouvez pas le faire en une seule instruction SQL. Vos options sont le déclencheur suggéré par maigre ou la procédure stockée proposée par krefftc. – BBlake