Това не е възможно, както е описано с динамичен sql / подготвен израз. Ще генерира Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger
при опит дори за CREATE TRIGGER
.
Най-близкото до автоматизацията можете да използвате CREATE EVENT
. Събитията са планирани съхранени програми, които се изпълняват по график/интервал по ваш избор. Интервалите са:
Можете да зададете "флаг", така да се каже, на ред, като например таблицата, която изобразявате по-горе, която има тригера След вмъкване. След това събитието може да изпълни Подготвено изявление динамично и го изпълнете.
Вижте отговора ми тук относно Управление на събития .
Трябва да кажа, че дори и да участвате в събитие, това, което предлагате, е почти Винаги знакът за лош дизайн на схемата, който няма да издържи добре на партньорска проверка.
Причината, поради която динамичният sql и Prepared Stmt не са разрешени, е, че тригерът трябва да бъде бърз и дори DDL може да се промъкне в низа и да се изпълни. И DDL stmts като ALTER TABLE
са забранени в тригерите (може да отнеме часове, за да се изпълнят буквално).
Вашата схема може също така да има една споделена таблица с колона ven_code
като диференциалната колона. Вместо това сте избрали да създадете нови таблици за всеки ven_code
. Това обикновено е лош дизайн и избор на производителност.
Ако имате нужда от помощ с дизайна на схемата, ще се радвам да разговарям за това с вас в стая за чат.