我有一个Postgres数据库,它包含200个表,它们分别具有相同的列名和数据类型。我想将他们所有人加入一张桌子,我怎么能实现这个目标呢?
我有Postgres 9.4和pgAdmin设置。
答案 0 :(得分:2)
如果表具有相同的列名和类型,则可以创建父表并安排所有其他表从父表继承。在此之后,父表上的查询将自动查询所有子表。
首先创建一个空父表,其定义与您已有的200个表相同。
然后,在200个表中的每一个表上使用 while (fscanf(...) == 4)
{
// do things with data
}
// after reading loop, determine why it ended
if (feof(f))
{
// end of file reached
}
else if (ferror(f))
{
// error while reading
}
else
{
// fscanf failed, syntax error ?
}
,使它们从父表继承。
ALTER TABLE
另见postgresql手册中的Inheritance。