代表的樹形結構鑑於代表樹狀層次結構有三列使用SQL克隆數據庫中
- ID表(主鍵,未自增)
- ParentGroupID
- someValue中
我知道該分支的最低節點,我想將它複製到具有相同數量父母的新分支,這些分支也需要克隆。
我正在嘗試編寫一個SQL INSERT INTO語句,該語句將使每個具有相同主體的行的副本具有第一部分GroupID到新的GroupID中。
實例開始表:
ID | ParentGroupID | SomeValue
------------------------
1 | -1 | a
2 | 1 | b
3 | 2 | c
目標我運行一個簡單的INSERT INTO語句後:
ID | ParentGroupID | SomeValue
------------------------
1 | -1 | a
2 | 1 | b
3 | 2 | c
4 | -1 | a-cloned
5 | 4 | b-cloned
6 | 5 | c-cloned
最終的樹結構
+--a (1)
| +--b (2)
| +--c (3)
|
+--a-cloned (4)
| +--b-cloned (5)
| +--c-cloned (6)
ID是不總是很好地隔開因爲這個演示數據顯示,所以我不能總是假定父母的ID比1小1具有父母的行的當前ID。
此外,我正在嘗試在T-SQL(對於Microsoft SQL Server 2005及更高版本)中執行此操作。
這聽起來像一個經典的練習,應該有一個純SQL答案,但我太習慣編程了,我的思想在關係型SQL中並不認爲。
您正在使用哪種版本的SQL Server? – 2010-05-13 20:46:53
我不清楚克隆的ParentGroupID是如何確定的。 B的克隆是如何獲得ParentGroupId爲4的,而A的克隆的ParentGroupId是否等於它的源行? – Thomas 2010-05-13 20:55:29
我需要支持SQL Server 2005.(我更新了原始帖子以表明這一點) – AmoebaMan17 2010-05-13 21:02:51