を挿入するにはシナリオです: 私は2つのテーブルと2つの一時テーブルを持っています。公式テーブルにユーザーデータを挿入する前に、それらをチェックするために一時テーブルに挿入します。会社情報付きのcompany
テーブルと、連絡先情報を持つcontact
テーブルがあります。 contact
テーブルにはcompany
テーブルの外部キーインデックスであるcompany_id
というフィールドがあります。MySQLの - ここでは、外部キーインデックスとに
一時テーブルは、同じように設定されています。私はこのような文を使用してcompany
テーブルの上に新たに挿入されたIDにtemp_company
から外部キーを転送しないか、INSERT INTO company() SELECT * FROM temp_company;
とINSERT INTO contact() SELECT * FROM temp_contact
私の質問は次のとおりです。
は、私のような何かをしたいですか?それを行う方法はありますか?
現在、私は:
- は一時行
- を1つずつ行くと新しい最後のインサートIDで、その後連絡先を挿入し、その後、最後のインサートID
- をつかんで、彼らに
- を挿入つかん
ことが最も効率的な方法であれば私は知りません。ありがとう!
唯一の問題は、空のテーブルに一時テーブルのデータを設定していないことです。私は、既にたくさんのデータを持っているテーブルに行を追加しています。 –
正しく挿入する前に重複するキーがあるかどうかわからないという問題はありますか?この場合、あなたは何をしたいかに応じて、 'INSERT ... ON DUPLICATE KEY UPDATE'または' INSERT ... ON DUPLICATE KEY INGNORE'構文を使うことができます。 –