2010-11-10 117 views
0

我有三個表,基本上向下級聯,如:多次插入查詢

  • 話題
  • 部分(引用主題ID)
  • 第(引用主題ID和部分ID)

什麼是編寫mysql語句創建初始話題/部分/子部分的最佳方法,以便我可以獲取新創建的行的id(auto_incremented)並使用它們將它們插入到第二個?

編輯 我使用phpbb3的,如果讓說不上來一個巨大的差異,但我通常使用$ DB-sql_query()函數

+1

'$ db-> sql_query($ sql); $ db-> insert_id;'如果你的if($ db instanceof mysqli)' – ajreal 2010-11-10 05:09:57

回答

1

從父母,下線。
然後你可以使用LAST_INSERT_ID(),或在SELECT INSERT:

INSERT INTO TOPIC 
    (topic_id, topic) 
VALUES (DEFAULT, $topic); 

INSERT INTO SECTION 
    (topic_id, section) 
SELECT topic_id, $section 
    FROM TOPIC 
WHERE topic = $topic 

INSERT INTO SUBSECTION 
    (section_id, topic_id, subsection) 
SELECT section_id, topic_id 
    FROM SECTION 
WHERE section = $section 

這個例子假設TOPIC.topic_idSECTION.section_idSUBSECTION是AUTO_INCREMENT,主鍵列。

1

您可以使用mysql_insert_id()來獲得最後插入ID 。有關更多詳細信息,請參見reference

0

就我所知,只有一種方法,就是自上而下。
要將小節添加到節中,您必須已經插入節。
要將主題添加到子部分,請確保先添加子部分。
在途中,您將跟蹤最後插入的ID(如果您剛剛創建了它),以便將它傳遞給線下的下一個實體。

+0

我在概念上如何做到這一點,我試圖弄清楚如何從auto_increment中獲取並保存每個id並傳遞給下一個查詢..我想我應該更新該問題 – 2010-11-10 04:51:21

+0

曼尼得到了具體的答案。 – BeemerGuy 2010-11-10 04:51:57