sql >> データベース >  >> RDS >> Mysql

MYSQL:重複する一意のキーを持つレコードを挿入するときに既存の主キーを取得しますか?

    UNIQUEをお持ちの場合 列のインデックスは、何を試しても、RDMSはしません。 その列での重複を許可します(NULLを除く) 値)。

    あなたが言ったように、これが追加された場合、「エラー」を防ぐための解決策があります。おそらくINSERT IGNORE あなたの場合。

    とにかく、INSERT およびUPDATE データベースを変更します。 MySQL決して これらのステートメントの戻り値。 DBを読み取る唯一の方法は、SELECTを使用することです。 ステートメント。

    ここでは、UNIQUEがあるため、「回避策」は簡単です。 列:

    INSERT IGNORE INTO tbl (pk, sha_key) VALUES ( ... ), ( ... );
    SELECT pk, sha_key FROM tbl WHERE sha_key IN ( ... );
    --                                             ^^^
    --             Here the list of the sha1 keys you *tried* to insert
    


    1. LINQからXYZへのポリモーフィズム?

    2. Eclipse内でMySqlデータベースを使用する方法

    3. MySQLデータベースに1対多の関係を保存する方法は?

    4. SQLを使用してオプションのJOINを実行するにはどうすればよいですか?