2014-09-19 61 views
0

是否可以使用以下要求在SQL中創建表。SQL - 通過查詢結果創建名稱爲

我有兩個的cols表X,(主鍵,值)

每一次,我添加了一個新的價值,上表中,我創建了一個新的表名爲值。

所以如果表X中有10行,那麼我們需要在values字段中有10個表名。


讓我試着解釋一下情況。 我有一個類別A,我需要定義它。 A的子集可以包括{A1,A2,A3,......直到無窮}

所有所述子集具有不同的定義,但被唯一地標識屬性B.

B可以是直接甲,或者定義爲真的子集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>

現在什麼店都應該表現得類似於一棵樹。

hstore - 屬性 - > {A1:{C1,C2,C3 ...},A2:{D1,D2,D3 ..},....}

C和d在此結構具有多個或單個值。所以如果我要使用hstore,是否可以使用類似2d數組或類似的東西。看起來可以從以下的鏈接。

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

我想這肯定是一個更好的辦法。你可以請檢查和評論。 等。

+6

這是一個奇怪的要求。你的意思是如果你的表有1M行..你想創建1M表?那是糟糕的。 – Rahul 2014-09-19 18:36:34

+0

那麼一項工作就是用必要的權限來保護表X.不是每個人都可以將行添加到表X中,只有少數選定的行。 – manugupt1 2014-09-19 18:39:36

+0

我已經嘗試更新我需要的東西,你可以檢查一下,看看是否有解決方案。 – manugupt1 2014-09-19 18:45:39

回答

1

不,你不能這樣做。不應該。所以,如果你想要一個超級集合的所有項目都相似的子集,你應該創建一個名爲'parent_id'的列並引用該列中的超級集合。

+0

我試過更新我需要的東西,你可以檢查一下,看看是否有解決方案。 – manugupt1 2014-09-19 18:46:17

+0

啊,謝謝。看到我更新的評論。 – Jean 2014-09-19 18:51:44

+0

你能再詳細一點嗎? – manugupt1 2014-09-19 19:35:16

0

聽起來像一個壞主意,但是,是的,你可以做到這一點。根據你使用的是什麼SQL,可能需要有點創意才能做到。您很可能必須創建一個存儲過程,該存儲過程創建一個帶有名稱參數的新表。然後,您可以在插入時創建一個觸發器來調用存儲過程,因此每次插入一個新值時都會創建一個表。

0

這種做法對我不好。我認爲你應該嘗試另一種方式解決你的問題。

+0

嗯..你可以檢查最新的評論,我的意思是我知道這不是很好,因此我問了這個問題,並且願意討論它 – manugupt1 2014-09-19 19:47:02