2013-04-18 72 views
0

僅用於演示目的。我有兩個表格「測驗」和「問題」。將主鍵添加爲INSERT INTO表的一部分VALUES查詢

測驗表包含以下各列

  • quiz_id(PK)

  • quiz_title

問題表包含以下各列

  • question_id(PK)
  • quiz_ID(FK)
  • QUESTION_TEXT

我試圖插入問題文本 「QUESTION_TEXT」 的問題表。

我可以成功檢索最新的quiz_id並將其插入到問題表中。

INSERT INTO question (quiz_id) SELECT max(quiz_id) FROM quiz

但我還需要補充問題文本。我嘗試這樣做:

INSERT INTO question (question_text) VALUES ("question_text_sample")

但由於FK信息(quiz_id)未在查詢提供我正在一個錯誤。

我想結合上面的查詢,但我找不出一個可行的解決方案。

我試過如下:

INSERT INTO quiz (quiz_title) values ("quiz_title_sample") INSERT INTO question (quiz_id, question_text) VALUES (LAST_INSERT_ID(), "question_text")

闖闖:

INSERT INTO question (quiz_id, question_text) VALUES (SELECT max(quiz_id) FROM quiz , "question_text_sample")

任何人都可以,請給我一些方向?

在此先感謝!

回答

0

你肯定需要做的INSERT INTO測驗第一(因爲FK關係,如你注意到)。

您不能將LAST_INSERT_ID()存儲在用戶變量中,然後執行INSERT INTO ... SELECT(對不起,不熟悉MySQL)?

+0

是的,插入到測驗中實際上包含在我的問題中。 我意識到它並不突出。但是在嘗試將數據添加到問題表之前,我會先將數據插入到測驗表中。 Akash提供的解決方案對我來說效果很好。 感謝您的輸入。 – BustedSanta

0

您的quiz_id是AUTO_INCREMENT(http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html)嗎?

INSERT INTO測驗(quiz_title)VALUES( 'quiz_title_sample')

INSERT INTO的問題(quiz_id,QUESTION_TEXT)VALUES(LAST_INSERT_ID(), '問題文本')

+0

是的,quiz_id是一個auto_increment(在測驗表中)。 Akash提供的解決方案對我來說效果很好。感謝您的輸入。 – BustedSanta

相關問題