0

仅用于演示目的。我有两个表“测验”和“问题”。

测验表包含以下列

  • quiz_id (PK)

  • 测验标题

问题表包含以下列

  • question_id (PK)
  • quiz_ID (FK)
  • 问题文本

我正在尝试将问题文本插入问题表中的“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")

谁能给我一些指示?

提前致谢!

4

3 回答 3

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

于 2013-04-18T02:45:37.327 回答
0

您肯定需要先插入测验(因为 FK 关系,正如您所指出的)。

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

于 2013-04-18T02:46:57.217 回答
0

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

插入测验(quiz_title)值('quiz_title_sample')

插入问题(quiz_id,question_text)值(LAST_INSERT_ID(),'问题文本')

于 2013-04-18T02:47:28.313 回答