我有一些包含大量列的表格,我有时需要在50-60中排除5-6。是的,我的表是3NF标准化的,是的,有些甚至超过60列,如果这听起来很奇怪,亲爱的读者,尝试建模生物实体。
我的问题:
是否可以在Korma中的选择中默认排除字段,而不是在实体定义中指定entity-fields
中的数十列?
答案 0 :(得分:1)
基于谷歌搜索,这在普通的SQL中并不容易,这使得在应用程序级别上也很难做到。
从数据库收到完整的有效负载是否存在问题?如果不是那么你可以添加一个删除不需要的字段的后处理函数。
user=> (def unwanted-columns [:foo :bar])
#'user/unwanted-columns
user=> (map #(apply dissoc % unwanted-columns) [{:foo 1 :bar 2 :baz 3}])
({:baz 3})
答案 1 :(得分:1)
使用sql获取所有列并生成entity-fields
:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS where table_name = '<name of table>';
最好不要选择未使用的字段,而不是稍后过滤它们。