0

デモンストレーションのみを目的としています。「クイズ」と「質問」の2つのテーブルがあります。

クイズ テーブルには、次の列が含まれています。

  • 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

0

まず間違いなくクイズへの挿入を行う必要があります (ご指摘のとおり、FK 関係のため)。

LAST_INSERT_ID() をユーザー変数に保存してから、INSERT INTO...SELECT を実行できませんか?

于 2013-04-18T02:46:57.217 に答える
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(), '質問テキスト')

于 2013-04-18T02:47:28.313 に答える