当使用mysql客户端时,我正在处理一些包含10列和4列元信息的表(created_at,created_at_utc,update_at,updated_at_utc - 类似于rails)。我试图创建一种方法来基本上做一个选择*减去这4组列主要是为了使它适合单个窗口而不会破坏结果。我倾向于使用表名编写存储过程/程序,但想知道是否有更好的方法。类似的东西:
>call t($table_name)
有没有更好的方法来做到这一点? THX
编辑: 所以我不关心性能,我只会用它来验证是否正在更新/插入正确的内容。
答案 0 :(得分:3)
如果它只是选择,那么你可以制作一个视图...
答案 1 :(得分:1)
没有内置的方法来实现这一目标
你最好不要使用*
。这会降低查询优化器的速度。
答案 2 :(得分:0)
有两个简单的解决方案允许非元列在没有代码修改或维护视图的情况下增长:
记录的命名约定:使用meta_
前缀全部,并且不显示这些列。缺点:他们被要求并且是结果集的一部分,因此开销更大。
使用1:1关系将元列拆分为单独的表,并为要使用的其他应用程序/应用程序路径创建视图。缺点:1:1加入的每个查询都有一些开销。