您好我想知道是否可以在MySQL的一个表中创建两个主键。如果是这样,请解释这背后的概念。我问,因为我看过一个表,其中有两个主键没有设置自动增量。
答案 0 :(得分:8)
您只能拥有1个主键,但是:
答案 1 :(得分:4)
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
[...]一个表只能有一个PRIMARY KEY。 [...]
答案 2 :(得分:3)
不,但除了PRIMARY KEY之外,您还可以在表上添加其他UNIQUE索引。 UNIQUE + NOT NULL与主键基本相同。
您所看到的可能是复合主键(构成唯一键的多个列)。
答案 3 :(得分:2)
使用复合主键...
e.g。
CREATE TABLE table1 (
first_id int unsigned not null,
second_id int unsigned not null auto_increment,
user_id int unsigned not null,
desc text not null,
PRIMARY KEY(first_id, second_id));
另外,请查看示例here
答案 4 :(得分:1)
您可以通过以下方式为主键使用多个列:
CREATE TABLE
newTable
( field1 INT(11)
, field2 INT(11)
, field3 VARCHAR(5)
, field4 BLOB
, PRIMARY KEY (field2, field1, field3) <====
)
答案 5 :(得分:1)
表可以有一个PRIMARY键,可以包含一个或多个列。表也可以在其上定义许多附加键,作为UNIQUE KEY约束。
从您的描述中不清楚您是在查看定义了多个键的表,还是使用多列PRIMARY KEY的表。