据我所知,MySQL中不可能传递表句柄。因此,问题是如何编写适用于不同表的过程/函数。是否需要在每个proc / fun中对表名进行硬编码?假设我想doSomethingWithTable(...)
,是否被迫为每个表创建一个表,即使它是完全相同的操作?我真的需要创建X次相同的proc / fun来仅更改其名称(doSomethingWithTableClients(...)
,doSomethingWithTableUsers(...)
,doSomethingWithTableItems(...)
等)吗?
答案 0 :(得分:0)
您可以使用动态SQL将表名作为变量传递,以执行您希望执行的任何操作。
在过程中的所有表上执行相同的操作实际上很少见。诸如更改字符集/排序规则之类的事情浮现在脑海,但通常在过程中涉及逻辑,并且逻辑在表与表之间是不同的。