私のMySQLテーブルに一意にデータを挿入したいと思います。つまり、同じエントリ(すべての列に同じ値が含まれている)がすでにテーブルに存在する場合は、挿入操作を終了する必要があります。これは一意のキーを定義し、今後のエラーを処理することで簡単に行うことができますが、テーブル構造を変更することはできません。ユニークなキーなしでMySQLテーブルに一意に挿入
私は、ユニークなキーのないテーブルでもこれをキャッチする簡単な方法があると確信しています。もちろん、私は手動でSELECT
ステートメントを使ってそのようなレコードの存在をチェックすることができますが、その間に(SELECT
のチェックと実際のINSERT
のチェックの間に)自分のテーブルを変更する同時インスタンスが存在する可能性があります。
1つのSQLコマンドでチェックとINSERT
の操作を実行したいと思います。誰かが私を正しい方向に向けることができますか?
テーブルにキーを使用していますか? 「重複キーに挿入」を使用することができます。 @dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – Tim
@Timこれは一意のキーを必要とし、@BjörnMarschollekはそのようなキーを追加できないと言います。 –
なぜあなたはこれを行うための最良の方法は、テーブルを変更することはできません。他の方法はハックです。ロックが達成されてロックが解放された後にクエリが実行されている間に何か悪いことが起こった場合、それ以外に何も挿入できません。 – mikeq