创建Key=MUL的MySQL列?
您需要使用ADD KEY来创建Key=MUL的列。 语法如下 −
ALTER TABLE yourTableName MODIFY COLUMN yourColumnName data type,
ADD KEY(yourColumnName);
为了理解上述语法,让我们创建一张表。 创建表的查询如下所示 −
mysql> create table Instructor
-> (
-> Instructor_Id int,
-> Instructor_Name varchar(30),
-> Instructor_CourseName varchar(100)
-> );
Query OK, 0 rows affected (0.63 sec)
现在您可以查看表的描述,列KEY没有任何MUL密钥。 使用DESC命令检查表的描述的查询如下所示。
mysql> desc Instructor;
下面是输出 −
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| Instructor_Id | int(11) | YES | | NULL | |
| Instructor_Name | varchar(30) | YES | | NULL | |
| Instructor_CourseName | varchar(100) | YES | | NULL | |
+-----------------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
下面是在MySQL中创建Key=MUL的列的查询。 将列’Instructor_Id’设为Key=MUL。 查询如下所示 −
mysql> alter table Instructor modify column Instructor_Id int NOT NULL AUTO_INCREMENT,
-> add key(Instructor_Id);
Query OK, 0 rows affected (2.88 sec)
Records: 0 Duplicates: 0 Warnings: 0
现在再次检查表的描述。 查询如下所示 −
mysql> desc Instructor;
下面是输出−
+-----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id | int(11) | NO | MUL | NULL | auto_increment |
| Instructor_Name | varchar(30) | YES | | NULL | |
| Instructor_CourseName | varchar(100) | YES | | NULL | |
+-----------------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
要添加非主键,需要使用以下查询 −
mysql> alter table Instructor modify column Instructor_Name varchar(30) NOT NULL,
-> add key(Instructor_Name);
Query OK, 0 rows affected (2.77 sec)
Records: 0 Duplicates: 0 Warnings: 0
现在再次检查表的描述。 查询如下所示 −
mysql> desc Instructor;
下面是输出显示了一个字段的Key为MUL −
+-----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id | int(11) | NO | MUL | NULL | auto_increment |
| Instructor_Name | varchar(30) | NO | MUL | NULL | |
| Instructor_CourseName | varchar(100) | YES | | NULL | |
+-----------------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
阅读更多:MySQL 教程