当使用两个列或两个以上来定义主键时,这两个列被称为联合主键。联合主键的作用是确保表中不会存在重复的组合值。
在 Navicat 中直接把多个列设置成主键就可以创建联合主键了。
eg:A 列和 B 列,假设都是整形。如果 A 和 B 被定义位联合主键,那么 A:1, B:1 和 A:1, B:2 是可以同时存在的;如果是 A:1, B:1 和 A:1, B:1,那么由于这两个组合是一样的,所以是不能同时存在的。
以下是创建表并设置联合主键
CREATE TABLE orders (
order_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT,
PRIMARY KEY (order_id, product_id)
);
以下是给已创建的表设置联合主键
ALTER TABLE orders
ADD PRIMARY KEY (order_id, product_id);