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

MySQLテーブルに存在しないレコードのみを挿入するにはどうすればよいですか?


レコードが存在しない場合に挿入するには、列をUNIQUEINDEXとして設定します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   FirstName varchar(20)
   );
Query OK, 0 rows affected (0.30 sec)

以下は、「FirstName」列に存在しないレコードを挿入するための一意のインデックスを作成するためのクエリです-

mysql> CREATE UNIQUE INDEX index_on_FirstName ON DemoTable(FirstName);
Query OK, 0 rows affected (0.56 sec)
Records: 0 Duplicates: 0 Warnings: 0

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。ここで、挿入コマンドが存在しないレコードのみを挿入することを確認できます-

mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable(FirstName) values('Chris');
ERROR 1062 (23000): Duplicate entry 'Chris' for key 'index_on_FirstName'
mysql>
mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(FirstName) values('Mike');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(FirstName) values('Robert');
ERROR 1062 (23000): Duplicate entry 'Robert' for key 'index_on_FirstName'
mysql>
のエントリ'Robert'が重複しています

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

mysql> select *from DemoTable;

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

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | Chris     |
|  2 | Robert    |
|  3 | Mike      |
+----+-----------+
3 rows in set (0.00 sec)

  1. Javaを使用してMySQLテーブルに1つの列のみを挿入するにはどうすればよいですか?

    Java-MySQL接続コードでINSERTINTOステートメントを使用して列を挿入します。 まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.54 sec) これは、MySQLテーブルに1つの列のみを挿入するJavaコードです。 例 import java.sql.Connection; import java.sql.Driv

  2. MySQLにテーブルが存在するかどうかを検出するにはどうすればよいですか?

    テーブルの存在を検出するには、INFORMATION_SCHEMA.TABLESの概念を使用します。構文は次のとおりです- select table_name from information_schema.tables where table_schema=database() and table_name=yourTableName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2032    -> (    -> ClientId int,   &n