「PRIMARY KEY」の正式名称は「主キー制約」です。 MySQL の主キー制約は、その値がテーブル内の各行を一意に識別する列または列の組み合わせです。このような列はテーブルの主キーと呼ばれ、これによってテーブルのエンティティの整合性が強制されます。では、MySQL に主キー制約を追加するにはどうすればよいでしょうか?次の記事で紹介します。
#主キー制約は、テーブル内のデータの各行の識別子を一意に決定するためにテーブル内の主キーを定義します。主キーは、テーブル内の特定の列または複数の列の組み合わせにすることができ、複数の列で構成される主キーは複合主キーと呼ばれます。主キーは次の規則に従う必要があります。
## ● 各テーブルには主キーを 1 つだけ定義できます。 # 主キー値はテーブル内の各行を一意に識別する必要があり、NULL にすることはできません。つまり、テーブル内に同じ主キー値を持つデータ行が 2 つ存在することはできません。これが一意性の原則です。 # 列名は、複合主キー リストに 1 回だけ表示できます。 # 複合主キーには不要な冗長列を含めることはできません。複合主キーの列が削除されたときに、残りの列で構成される主キーが一意性原則を満たしている場合、その複合主キーは正しくありません。これが最小化の原理です。1. テーブルの作成時に主キー制約を追加する
<字段名> <数据类型> PRIMARY KEY [默认值]
mysql> CREATE TABLE tb_emp1 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp1; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(25) | YES | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.14 sec)
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
mysql> CREATE TABLE tb_emp2 -> ( -> id INT(11), -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT, -> PRIMARY KEY(id) -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp2; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(25) | YES | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.14 sec)
2、テーブルの作成後に主キー制約を追加します
テーブルを作成した後、データ テーブルを変更するときに主キー制約を追加できます。構文規則は次のとおりです:ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);
#
mysql> ALTER TABLE tb_emp3 -> ADD PRIMARY KEY(id); Query OK, 0 rows affected (0.94 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC tb_emp3; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.12 sec)
3. 複合主キーを設定します
テーブルの作成時に複合主キーを追加することもできます。このとき、主キーは複数のフィールドを組み合わせて構成されます。文法規則は次のとおりです。PRIMARY KEY [字段1,字段2,…,字段n]
mysql> CREATE TABLE tb_emp4 -> ( -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT, -> PRIMARY KEY(id,deptId) -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_emp4; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | name | varchar(25) | NO | PRI | NULL | | | deptId | int(11) | NO | PRI | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.14 sec)
以上がmysqlに主キーを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。