我知道我可以使用
删除表格delete some_table_name from `.
但是假设我有大量的表,并希望删除所有表格,例如,以prefix_
开头并以_suffix
结尾。
我该怎么做?
答案 0 :(得分:1)
您可以使用delete
的功能形式(请参阅here):
/ create some tables
q)`a_one`a_two`b_one`b_two set\:([] x:til 10)
`a_one`a_two`b_one`b_two
q)tables[]
`s#`a_one`a_two`b_one`b_two
/ find table names matching "a_*" and delete them from root namespace
q)![`.;();0b;{x where x like "a_*"} tables[]]
`.
q)tables[]
`s#`b_one`b_two
答案 1 :(得分:1)
如果您经常需要此功能,我建议您按如下方式定义drop
功能:
q)drop:![`.;();0b;](),
此函数将一个或多个表名作为符号并删除它们。结合选择器功能,它可用于按模式删除
q)drop{x where x like"prefix_*_suffix"}tables[]
您还可以定义drop_matching
功能
q)drop_matching:drop{a where(a:tables[])like x}@
将一举完成这项工作:
q)drop_matching"prefix_*_suffix"