MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで次のエラーが発生するのはなぜですか:エラー1062(23000):重複エントリ?


列の値を一意のキーとして設定し、テーブルに重複する値を挿入しようとしたとします。これにより、エラー1062(23000):重複エントリが発生します。

まずテーブルを作成しましょう-

 mysql> create table DemoTable776(FirstValue int、SecondValue int、unique key(FirstValue、SecondValue)); Query OK、0行が影響を受ける(0.74秒)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。重複する値を挿入すると、以下に示すように同じエラーが発生します-

 mysql> DemoTable776に挿入values(10,20);クエリOK、影響を受ける1行(0.16秒)mysql> DemoTable776に挿入values(10,40);クエリOK、影響を受ける1行(0.15秒)mysql>挿入into DemoTable776 values(40,20);クエリOK、1行が影響を受ける(0.26秒)mysql> Insert into DemoTable776 values(10,20);エラー1062(23000):キー'FirstValue'<の重複エントリ'10-20' / pre> 

selectステートメントを使用してテーブルのすべてのレコードを表示します-

 mysql> select * from DemoTable776; 

これにより、次の出力が生成されます-

 + ------------ + ------------- + | FirstValue | SecondValue | + ------------ + ------------- + | 10 | 20 || 10 | 40 || 40 | 20 | + ------------ + ------------- + 3行セット(0.00秒)

  1. MySQLでタイプを比較してもエラーが発生しないのはなぜですか?

    stringをintと比較しようとしても、MySQLはstringをintに変換するため、エラーは発生しません。まずテーブルを作成しましょう- mysql> create table DemoTable1852      (      Value1 varchar(20),      Value2 int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mys

  2. MySQLエントリが存在するかどうかを確認し、存在する場合は、他の列を上書きする方法を教えてください。

    これには、INSERT ON DUPLICATEKEYUPDATEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1891    (    FirstName varchar(20),    UNIQUE KEY(FirstName)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTab