のためのキーを複製、私は現在多行挿入とMySQLの主キー
INSERT INTO test (uid, datetime, precip, sds) VALUES (?,?,?,?) on duplicate key update uid = "<uid>";
(uidが主キーである)以下のようにinsert文を持っています今、私は、MySQLで複数行の挿入を実行する必要があります。私は、uidが既に存在するかどうかをチェックし、別のものを更新する必要があります。 uidは主キーであるため、新しい各行には新しいuidが含まれます。以下の構文が正しいかどうかお知らせください。あなたがメインのUIDがデータベースにすでに存在する場合、代替UIDで新しい行を作成したい
まず解釈:
INSERT INTO test (uid, datetime, precip, sds) VALUES (?,?,?,?), (?,?,?,?), (?,?,?,?), (?,?,?,?), (?,?,?,?) on duplicate key update uid = values(<uid for first record>), uid = values(<uid for second record>), uid = values(<uid for third record>), uid = values(<uid for fourth record>);
テストテーブルにあるキーを提供してください。 –
テストテーブルの主キーは 'uid'で、これは外部キーのないテーブルの唯一のキーです。 だから、いつでも同じuidが見られ、すべての列を更新する必要がある、他の –
を挿入しかし、あなたは重複key'句に 'で、このキーを使用することはできません... この句は、別の方法で動作します...あなたが持っている場合'duplicate key'の場合、' datetime'の値やdbの既存レコードの別のフィールドを変更できますが、テーブルに挿入しようとしている値を変更することはできません。また 'uid'は、プライマリおよび一意のキーであり、あなたがここに重複がある場合、それはあなたのシステムの設計に大きな問題を抱えている意味... –