添加主键作为INSERT INTO表VALUES查询的一部分

时间:2013-04-18 02:39:44

标签: mysql mysqli

仅供演示之用。我有两个表“测验”和“问题”。

测验表包含以下列

  • 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")

有人可以给我一些指示吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

你很接近,应该是它

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

有关INSERT语法的更多信息: http://dev.mysql.com/doc/refman/5.5/en/insert.html

答案 1 :(得分:0)

你肯定需要先插入测验(因为你注意到FK关系)。

你不能将LAST_INSERT_ID()存储在用户变量中,然后执行INSERT INTO ... SELECT(抱歉,不熟悉MySQL)?

答案 2 :(得分:0)

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

INSERT INTO测验(quiz_title)值('quiz_title_sample')

INSERT INTO question(quiz_id,question_text)VALUES(LAST_INSERT_ID(),'question text')