MySQL中的主键(Primary Key)和外键(Foreign Key)都是用于约束表中的数据,但有以下主要区别:
主键:
- 每个表只能有一个主键。
- 主键的值必须是唯一的,不能重复。
- 主键用于快速检索表中的记录。
- 当没有指定主键时,MySQL会自动创建一个名为id的自增整数列作为主键。
例如:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
外键:
- 一个表可以有多个外键。
- 外键值可以重复。
- 外键用于在两个表之间创建链接,保证数据的一致性和完整性。
- 一个表的外键指向另一个表的主键值。
例如:
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
orders表的user_id列作为外键,指向users表的主键id,这样能够保证orders表的user_id值必须是users表中存在的id值。