動的SQL/プリペアドステートメントで説明されているように、これは不可能です。 Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger
CREATE TRIGGER
さえしようとすると 。
自動化に最も近い方法は、CREATE EVENT
を使用することです。 。イベントは、選択したスケジュール/間隔で実行されるスケジュールされたストアドプログラムです。間隔は次のとおりです。
上に描いているテーブルのように、挿入後トリガーがある行にいわば「フラグ」を設定できます。その後、イベントはプリペアドステートメント<を実行できます。 / a> 動的に実行します。
イベント管理 で私の回答をご覧ください 。
イベントで実行されたとしても、あなたが提案しているのはほぼ常に ピアレビューに耐えられない貧弱なスキーマ設計の兆候。
動的SQLとPreparedStmtが許可されない理由は、トリガーを高速にする必要があり、DDLでさえ文字列に忍び込んで実行される可能性があるためです。そして、ALTER TABLE
のようなDDLstmts トリガーでは許可されていません(文字通り実行するには数時間かかる場合があります)。
スキーマでは、1つのテーブルを列ven_code
と共有することもできます。 微分器の列です。 代わりに、ven_code
ごとに新しいテーブルを作成することを選択しました 。 これは通常、設計とパフォーマンスの選択としては不十分です。
スキーマ設計についてサポートが必要な場合は、チャットルームで喜んでお話しします。