亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

在mysql的預(yù)存程序中建立觸發(fā)器
P粉197639753
P粉197639753 2024-02-25 19:35:21
0
1
602

我想在過(guò)程中建立觸發(fā)器。但經(jīng)過(guò)一番研究後我發(fā)現(xiàn)這是不可能的。你能建議我另一種方法來(lái)實(shí)現(xiàn)以下操作嗎? (由於某種原因,我無(wú)法分享確切的數(shù)據(jù)和查詢。請(qǐng)參考類似的查詢。)

我想要什麼

我建立了一個(gè)包含我需要的資料的臨時(shí)表。

例如。 CREATE TEMPORARY TABLE temp1 SELECT id, col_1 FROM table1 WHERE col_1=2;

當(dāng)資料插入temp1時(shí),我想在表格table2中插入數(shù)據(jù),我可以透過(guò)建立TRIGGER來(lái)實(shí)現(xiàn)。但問(wèn)題是我想在 table2 中給出一個(gè)值,該值將是動(dòng)態(tài)的並且將從nodejs後端取得。所以我建立了一個(gè) PROCEDURE ,它接受參數(shù) neededId 。但我無(wú)法在程式內(nèi)建立觸發(fā)器。我可以透過(guò)其他方式實(shí)現(xiàn)這一目標(biāo)嗎?

我創(chuàng)建的流程

這裡 neededId 是我從後端取得要插入的外鍵

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 ;

P粉197639753
P粉197639753

全部回覆(1)
P粉217784586

SQL儲(chǔ)存例程中不允許使用語(yǔ)句

允許的 SQL 語(yǔ)法在準(zhǔn)備好的語(yǔ)句中

#CREATE TRIGGER 未列出。


最後:觸發(fā)器不能在預(yù)存程序、函數(shù)、預(yù)準(zhǔn)備語(yǔ)句、觸發(fā)器或事件過(guò)程中建立。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板