重複の可能性:
行mysqlの挿入中に存在しない場合の使用方法
私は問題があります:
id(int、PK、AI、Unique)、col1(varchar)、col2(varchar)、col3(datetime)の4つの列を持つ「table」という名前のテーブルがあります。
多くのユーザーはmysqlサーバーに接続して、「テーブル」に行を挿入できます。問題は、col2とcol3が「テーブル」の他の行に存在できないことです。
私はそのようなものを書くでしょう:IF NOT EXISTS(select * from table where col2 = '2' and col3 = '2012-12-12 12:12:12')INSERT INTO table(col1、col2、col3)values(1 、2、 '2012-12-12 12:12:12')
私がやろうとしていることをあなたが知っていると思います。
これを1つのステートメント(2人のユーザーが同時に同じ行を挿入する状況を回避するため)またはトランザクションで実行しようとしています。トランザクションでそれを行う必要がある場合、それはどのタイプの分離である必要がありますか?シリアル化可能な分離によりロックテーブルが発生するため、挿入プロセスが大幅に遅くなる可能性があります。お願い助けて。