Je souhaite créer un déclencheur dans le processus. Mais après quelques recherches, j'ai découvert que ce n'était pas possible. Pouvez-vous me suggérer une autre façon d’atteindre ce qui suit ? (Pour une raison quelconque, je ne peux pas partager les données et la requête exactes. Veuillez vous référer aux requêtes similaires.)
Qu'est-ce que je veux
J'ai créé une table temporaire contenant les données dont j'ai besoin.
Par exemple. CREATE TEMPORARY TABLE temp1 SELECT id, col_1 FROM table1 WHERE col_1=2;
Lorsque les données sont insérées dans temp1, je veux qu'elles soient dans le tableau table2
中插入数据,我可以通过创建TRIGGER
来实现。但问题是我想在 table2
中给出一个值,该值将是动态的并且将从nodejs后端获取。所以我创建了一个 PROCEDURE
,它接受参数 neededId
. Mais je ne peux pas créer de déclencheur dans le programme. Existe-t-il un autre moyen d'y parvenir ?
Mon processus de création
C'est ici neededId
que j'obtiens la clé étrangère à insérer depuis le backend
DELIMITER $$ USE `DB`$$ CREATE PROCEDURE `MyProcedure` (IN neededID int) BEGIN DROP TABLE IF EXISTS temp1; CREATE TEMPORARY TABLE temp1 SELECT id, col_1 FROM table1 WHERE col_1=2; DROP TRIGGER IF EXISTS myTrigger; CREATE TRIGGER myTrigger AFTER INSERT ON temp1 FOR EACH ROW BEGIN INSERT into table2("value1", "value2", neededId); END; END$$ DELIMITER ;
Les déclarations ne sont pas autorisées dans les routines stockées SQL
Syntaxe SQL autorisée dans les instructions préparées
CREATE TRIGGER
Non répertorié.Enfin : les déclencheurs ne peuvent pas être créés dans des procédures stockées, des fonctions, des instructions préparées, des déclencheurs ou des procédures événementielles.