我有一個數據庫有3列(node_id,node_parent,title)。現在,我試圖找出複製節點並保留父節點ID的最佳方法。MySQL樹結構數據庫 - 複製節點的最佳方式是什麼?
這裏就是我的意思是:
我想用PHP遞歸做,並通過每個節點和兒童運行,但在我看來,它不是最優化的。僅僅使用MySQL查詢可以做到這一點嗎?
我有一個數據庫有3列(node_id,node_parent,title)。現在,我試圖找出複製節點並保留父節點ID的最佳方法。MySQL樹結構數據庫 - 複製節點的最佳方式是什麼?
這裏就是我的意思是:
我想用PHP遞歸做,並通過每個節點和兒童運行,但在我看來,它不是最優化的。僅僅使用MySQL查詢可以做到這一點嗎?
如果你想添加一個新行保持node_parent
和title
使用一個單一查詢現有的行,這應該工作:
INSERT INTO <table> SELECT NULL, node_parent, title FROM <table> WHERE id = 1;
注意,node_id
列應設置爲AUTO_INCREMENT
。
需要複製多少個關卡?如果只有一個,則可以執行以下操作:
INSERT INTO table1 SELECT NULL,node_parent, title FROM table1 WHERE id=2;
INSERT INTO table1 SELECT null,LAST_INSERT_ID(),title FROM table1 where node_parent=2;
如前面提到的海報,node_id應該是AUTO_INCREMENT。
我應該寫'重複'而不是'複製'。我想只爲我想要複製的節點保留node_parent。該節點下的其他每個孩子都應具有剛複製的節點的parent_id。我想知道如果我只能用mysql來做到這一點。 – Cris