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

MySQLに重複行を挿入しないようにするにはどうすればよいですか?


MySQLに重複する行を挿入しないようにするには、UNIQUE()を使用できます。構文は次のとおりです-

ALTER TABLE yourTableName ADD UNIQUE(yourColumnName1,yourColumnName2,...N);

上記の構文を理解するために、テーブルを作成しましょう。

テーブルを作成するためのクエリは次のとおりです-

mysql> create table avoidInsertingDuplicateRows
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> FirstValue int,
   -> SecondValue int
   -> );
Query OK, 0 rows affected (0.53 sec)

次に、descコマンドを使用してテーブルの説明を確認します。

クエリは次のとおりです-

mysql> desc avoidInsertingDuplicateRows;

サンプル以下は出力です-

+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| Id          | int(11) | NO   | PRI | NULL    | auto_increment |
| FirstValue  | int(11) | YES  |     | NULL    |                |
| SecondValue | int(11) | YES  |     | NULL    |                |
+-------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

MySQLに重複行を挿入しないようにするためのクエリは次のとおりです。テーブルにレコードを挿入するためにinsertコマンドで設定します-

mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20);
Query OK, 1 row affected (0.24 sec)
mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20);
ERROR 1062 (23000): Duplicate entry '10-20' for key 'FirstValue'

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

クエリは次のとおりです-

mysql> select *from avoidInsertingDuplicateRows;

これが出力です-

+----+------------+-------------+
| Id | FirstValue | SecondValue |
+----+------------+-------------+
| 1  | 10         | 20          |
+----+------------+-------------+
1 row in set (0.00 sec)

  1. MySQLから最後の10行を選択するにはどうすればよいですか?

    MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(

  2. MySQLテーブルで順序付けられた3行のみを選択するにはどうすればよいですか?

    このために、LIMITとともにORDERBY句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1551    -> (    -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> EmployeeName varchar(20)    -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいく