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

MySQLで複合一意性を適用するにはどうすればよいですか?


UNIQUEキーワードを使用して、MySQLで複合一意性を適用できます。テーブル列にUNIQUEキーワードを追加するための構文は次のとおりです。

構文は次のとおりです

CREATE TABLE yourTableName
(
   yourColumnName1 datatype,
   yourColumnName2 datatype,
   yourColumnName3 datatype,
   .
   .
   N
   UNIQUE yourConstarintName(yourColumnName2,yourColumnName3)
);

上記の概念を理解するために、いくつかの列を持つテーブルを作成し、テーブルに一意の制約を追加しましょう。テーブルを作成するためのクエリは次のとおりです

mysql> create table UniqueDemo
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(100),
   -> StudentAge int,
   -> StudentMarks int
   -> ,
   -> UNIQUE age_NameConstraint(StudentName,StudentAge)
   -> );
Query OK, 0 rows affected (0.76 sec)

SHOWコマンドを使用して、テーブルから制約名を表示できます。

構文は次のとおりです

SHOW INDEX FROM yourTableName;

テーブルから一意の制約を表示するには、上記の構文を使用します。クエリは次のとおりです-

mysql> SHOW INDEX FROM UniqueDemo;

以下は出力です

+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table      | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| uniquedemo |          0 | PRIMARY            |            1 | StudentId   | A         |           0 | NULL     | NULL   |      | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            1 | StudentName | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            2 | StudentAge  | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
3 rows in set (0.33 sec)

  1. MySQLで複合的な一意性を強制できますか?

    はい、できます。理解するために、最初にテーブルを作成しましょう- mysql> create table enforceCompoundUniqueness    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(40) NOT NULL,    -> StudentMobileNumber varchar(12) NOT NULL,    

  2. MySQLのテーブルのすべての列を削除するにはどうすればよいですか?

    MySQLのテーブルのすべての列を削除するには、DROPTABLEコマンドを使用できます。構文は次のとおりです。 DROP TABLE yourTableName; 最初にテーブルを作成しましょう: mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentFirstName varchar(20),    StudentLastName varchar(20),    St