0

MySQL と PHP を使用して、ResponseTable と EntryTable の 2 つのテーブルがあります。

応答表には

 RespID(pk,uq,ai, int), Response(string)

エントリーテーブルは

 EntryID(pk,uq,ai,int), RespID(int), UserID(int)

レスポンスが存在しない ResponseTable にレスポンスを挿入し、レスポンスに対応する ResponseTable の RespID に基づいて EntryTable にエントリを挿入したいと考えています。

最小限のステートメントでこれを行うにはどうすればよいでしょうか?

編集: 応答は一意です

4

2 に答える 2

0

mysql はTRIGGERSをサポートしています。「AFTER」「INSERT」をアクティブにするResponseTableに1つ追加すると、NEWキーワードを使用して挿入される値を使用できます。

トリガーの本体は、エントリへの挿入にすることができます

何かのようなもの:

 CREATE TRIGGER `response_after_insert` AFTER INSERT ON `response`
  FOR EACH ROW
 BEGIN INSERT INTO entry SET RespID=NEW.RespID ON DUPLICATE KEY UPDATE operation=1;END;

したがって、トリガーを設定すると、応答時に挿入を行うたびに、トリガーがアクティブになります

于 2013-03-18T16:11:20.000 に答える
0

フロントエンドからのステートメントが最も少ないのは、ストアド プロシージャを使用することです。ただし、どの方法でも、2 つの INSERT ステートメントが必要になります。1 つのクエリで 2 つの異なるものを挿入することはできません。

于 2013-03-18T16:08:55.487 に答える