MySQL сказал: #1336 - Динамический SQL не разрешен в хранимой функции или триггере

Это главный вопрос, пожалуйста, помогите мне в этом

Это мой код:

BEGIN   

DECLARE TMPCOL VARCHAR(100);

SET TMPCOL= 'ID';   

SET @s = CONCAT('INSERT INTO TMP(DATA1, DATA2) VALUES ("DATA",OLD.',TMPCOL,');');  

PREPARE stmt1 FROM @s;    

EXECUTE stmt1;   

DEALLOCATE PREPARE stmt1;  

END

1 ответ

Вам не нужен динамический SQL. Это фактически то же самое:

BEGIN   
    INSERT INTO TMP (DATA1, DATA2)
        VALUES ('DATA', OLD.ID);
END;

Это должно работать в триггере. Иначе, old не определено.

Другие вопросы по тегам