仅供演示之用。我有两个表“测验”和“问题”。
测验表包含以下列
quiz_id(PK)
quiz_title
问题表包含以下列
我正在尝试将问题文本插入问题表中的“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 :(得分: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')