MySQL中的MUL, PRI和UNI有什么区别?
我正在处理一个MySQL查询,使用命令:
desc mytable;
其中一个字段显示为MUL键,其他字段显示为UNI或PRI。
我知道,如果一个键是PRI,那么每个表只能有一条记录与该键相关联。如果一个键是MUL,这是否意味着可以有多个相关记录?
这是mytable的响应。
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| courseid | int(11) | YES | MUL | NULL | |
| dept | char(3) | YES | | NULL | |
| coursenum | char(4) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
UNI:对于唯一的:
它是要唯一标识的表的一个或多个列的集合
备案。
一个表可以有多个UNIQUE键。
它很像允许唯一值的主键,但是
可以接受一个主键不接受的空值。
PRI:对于PRIMARY:
它也是表的一个或多个列的集合,用于惟一地标识记录。
一个表只能有一个主键。
它很像UNIQUE键,允许惟一值,但不允许
任何空值。
MUL:用于多个:
It is also a set of one or more columns of a table which does not
identify the record uniquely.
A table can have more than one MULTIPLE key.
It can be created in table on index or foreign key adding, it does
not allow null value.
It allows duplicate entries in column.
If we do not specify MUL column type then it is quite like a normal
column but can allow null entries too hence; to restrict such entries
we need to specify it.
If we add indexes on column or add foreign key then automatically MUL
key type added.
DESCRIBE <table>;
这实际上是一个快捷方式:
SHOW COLUMNS FROM <table>;
在任何情况下,"Key"属性有三个可能的值:
革命制度党
大学
MUL
PRI和UNI的含义非常清楚:
PRI =>主键
UNI =>唯一键
第三种可能是MUL(您所询问的),它基本上是一个既不是主键也不是唯一键的索引。这个名字来源于“multiple”,因为相同的值允许多次出现。直接从MySQL文档:
如果Key为MUL,则该列是非唯一索引的第一列,在该列中允许多次出现给定值。
还有最后一个警告:
如果一个表的给定列应用了多个Key值,则Key将按PRI、UNI、MUL的顺序显示优先级最高的Key值。
总的来说,MySQL文档非常好。如果有疑问,就去看看吧!