0

我有三个基本上级联的表,例如:

  • 话题
  • 部分(参考主题 ID)
  • 小节(参考主题 id 和节 id)

编写 mysql 语句以创建初始主题/部分/子部分的最佳方法是什么,以便我可以获取新创建行的 id(auto_incremented)并使用它们将它们插入到后两个中?

编辑 我正在使用 phpbb3,不知道这是否有很大的不同,但我通常使用 $db-sql_query() 函数

4

3 回答 3

1

您可以使用 mysql_insert_id() 来获取最后一个插入 ID。有关详细信息,请参阅参考资料。

于 2010-11-10T04:46:50.443 回答
1

从父母那里,下线。
然后您可以在 SELECT 中使用LAST_INSERT_ID()或 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 主键列。

于 2010-11-10T04:50:54.110 回答
0

据我了解,只有一种方法,即自上而下。
要将小节添加到节中,您必须已经插入了节。
要将主题添加到小节,请确保先添加小节。
在此过程中,您跟踪最后插入的 ID(如果您刚刚创建它)以将其提供给下一个实体。

于 2010-11-10T04:48:41.347 回答