主键指定两列

时间:2015-03-21 16:29:24

标签: mysql

我正在学习sql并看到以下内容:

create table order_items
( orderid int unsigned not null,
  isbn char(13) not null,
  quantity tinyint unsigned,

  primary key (orderid, isbn)

);

有问题的行是:primary key (orderid, isbn)

如何将两列设置为主键?这是如何运作的?我知道像你的社会保障一样有一个专栏作为主键,它是独一无二的。

1 个答案:

答案 0 :(得分:1)

主键是一个或多个具有以下两个属性的列:

  • 值是唯一的。
  • 列不为空。

这仅表示这两列的值对唯一地标识一行。一个表只能有一个主键。

在我看来,我更喜欢自动递增的数字主键,这两个列具有辅助(唯一复合)索引。一个原因是外键引用,我发现使用单个列更容易维护。