如何有效地拆分表,以便所有条目具有值' x'在' mycol'进入一个表格(' mytableX'),那些有价值的' y'在另一个(' mytableY')和那些有价值的' z' (' mytableZ')在另一个。
可以在纯sql中完成吗?
答案 0 :(得分:1)
在Postgres中,您可以这样做:
create table mytableX as
select * from mytable where mycol = 'X';
你会为每张桌子重复这个。
话虽如此,你想要这样做的原因很少。拆分表不太可能使查询更有效率;它增加了表的数量;新表可以从较大的表中过时;等等。
我只能想到一个很好的理由。那就是为每个表提供单独的访问控制。即使在这种情况下,还有其他选项,但将数据拆分为单独的表可以简化安全性。
如果你真的需要这样的东西,那么观点可能比单独的表更好:
create view mytableX as
select * from mytable where mycol = 'X';