为 MySQL 中的不同表创建 procedure/function

Create procedure/function working for different tables in MySQL

据我所知,MySQL 中不可能传递 table 句柄。所以问题是如何编写适用于不同 table 的 procedure/function。是否有必要在每个 proc/fun 中硬编码 table 个名称?假设我想 doSomethingWithTable(...) 并且我是否被迫为每个 table 创建一个,即使它是完全相同的操作?我真的需要创建 X 次相同的 proc/fun 仅更改其名称(doSomethingWithTableClients(...)doSomethingWithTableUsers(...)doSomethingWithTableItems(...) 等等)吗?

您可以将 table 名称作为变量传递,使用动态 SQL 来执行您希望执行的任何操作。

实际上,您很少会对一个过程中的所有 table 执行相同的操作。想到更改字符集/排序规则之类的事情,但通常在过程中涉及逻辑,并且逻辑不同于 table 到 table。