Ich möchte dabei einen Auslöser schaffen. Nach einigen Recherchen stellte ich jedoch fest, dass dies nicht möglich ist. Können Sie mir einen anderen Weg vorschlagen, um Folgendes zu erreichen? (Aus irgendeinem Grund kann ich die genauen Daten und die Abfrage nicht weitergeben. Bitte beziehen Sie sich auf ähnliche Abfragen.)
Was will ich
Ich habe eine temporäre Tabelle mit den von mir benötigten Daten erstellt.
Zum Beispiel. CREATE TEMPORARY TABLE temp1 SELECT id, col_1 FROM table1 WHERE col_1=2;
Wenn Daten in temp1 eingefügt werden, möchte ich, dass sie in der Tabelle enthalten sind table2
中插入数据,我可以通过创建TRIGGER
来实现。但问题是我想在 table2
中给出一个值,该值将是动态的并且将从nodejs后端获取。所以我创建了一个 PROCEDURE
,它接受参数 neededId
. Aber ich kann im Programm keinen Trigger erstellen. Gibt es eine andere Möglichkeit, dies zu erreichen?
Mein Entstehungsprozess
Hier neededId
bekomme ich den Fremdschlüssel zum Einfügen aus dem 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 ;
SQL存储例程中不允许使用语句
允许的 SQL 语法在准备好的语句中
CREATE TRIGGER
未列出。最后:触发器不能在存储过程、函数、预准备语句、触发器或事件过程中创建。