SQL - 创建一个名称作为查询结果的表

时间:2014-09-19 18:35:18

标签: sql postgresql

是否可以在SQL中创建具有以下要求的表。

我有一个带有两个cols的表X,(主键,值)

每次我在上面的表中添加一个新值,我创建一个名为value的新表。

因此,如果表X中有10行,那么我们需要在值字段中有10个表名。


让我试着解释一下情况。 我有一个A类,我需要定义它。 A的子集可以包括{a1,a2,a3,.....直到无穷大}

所有子集都有不同的定义,但唯一标识为属性B.

B可以直接为A,也可以是定义为true的子集A.我不知道如何设计它。我正在使用postgresql


所以我从a_horse_with_no_name中获取提示并认为这可以是表结构。



Table A 
<table border="1">
  <td> primary_key </td>
  <td> B1 </td>
  <td> B2 </td>
  <td> hstore - attribute </td>
</table>
&#13;
&#13;
&#13;

现在哪个商店的行为应该与树类似。

hstore - attribute - &gt; {a1:{c1,c2,c3 ...},a2:{d1,d2,d3 ..},....}

C和D是具有多个或单个值的结构。因此,如果我要使用hstore,是否可以使用像2d数组或类似的东西。似乎可以从以下链接。

http://www.postgresql.org/docs/9.0/static/hstore.html

我认为这肯定是一种更好的方法。你能检查一下吗? 等等..

3 个答案:

答案 0 :(得分:1)

不,你不能这样做。不应该。

编辑:所以,如果你想要一个超级集的子集,其中所有项都相似,你应该创建一个名为'parent_id'的列,并引用该列中的超集。

答案 1 :(得分:0)

听起来不错,但是,你可以做到。根据您使用的SQL,可能需要有点创造性。您很可能必须创建一个存储过程,该过程创建一个带有名称参数的新表。然后,您可以在插入时创建一个触发器来调用存储过程,因此每次插入新值时都会创建一个表。

答案 2 :(得分:0)

这种做法对我不好。我认为你应该尝试另一种方式来解决你的问题。