提问关于 mysql得联合主键和复合主键的问题
如下sql：
CREATE TABLE `film_actor` (
`actor_id` smallint(5) unsigned NOT NULL,
`film_id` smallint(5) unsigned NOT NULL,
`name` varchar(50)  NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`actor_id`,`film_id`) USING BTREE,
  KEY `idx_fk_film_id` (`film_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
（一）`primary key` 是联合主键还是复合主键，我个人理解的是联合主键，毕竟`actor_id`不是自增的？但是针对`actor_id`和`film_id`设值时，只能1-1的for primary key。
（二）但是如果`actor_id`设有自增`auto_increment`，然后`primary key`是 `primary key(actor_id,film_id)`这种是联合还是复合？
（三）又或者设有自增的`actor_id`，`primary key(actor_id,name)`是复合还是联合？求大神解答一下疑惑，谢谢
这个问题要是问外国开发者，TA们能一脸懵逼。
在英文语境中只有 `Composite Primary Key`（也有叫 `Compound Primary Key` 的），就是一个表中如果是多个字段组成一个主键，那么这个主键就被称为这玩意儿。
至于这玩意儿你翻译成“联合主键”、“组合主键”、“混合主键”还是“复合主键”，都特么是一回事儿。
结果到了中文编程界，不知道是哪位神仙起的头儿，非得编个“联合主键”和“复合主键”的区别出来。再加上中文编程界有一大特点，就是博客或者问答习惯性东抄西搬，结果错的知识也能流传广泛甚至成为“主流”。
搬一个“流传最广”的对于“联合主键”和“复合主键”区别的文章：
“联合主键”还是单一主键，只不过往往用在关联表里，一个关联表里会涉及到多个其他表的主键组合形成一条数据，你既可以为它们设置一个“复合主键”、也可以再新加一个自增列设为“联合主键”。
举例：
```
--- 学生表
CREATE TABLE `student` (
    `student_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(20) NOT NULL,
    PRIMARY KEY (`student_id`) USING BTREE
);

--- 科目表
CREATE TABLE `subject` (
    `subject_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(20) NOT NULL,
    PRIMARY KEY (`subject_id`) USING BTREE
);

--- 分数表，用所谓的“复合主键”
CREATE TABLE `score` (
    `student_id` int(10) unsigned NOT NULL,
    `subject_id` int(10) unsigned NOT NULL,
    `value` int(10) unsigned NOT NULL,
    PRIMARY KEY (`student_id`, `subject_id`) USING BTREE
);

--- 分数表，用所谓的“联合主键”
CREATE TABLE `score` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `student_id` int(10) unsigned NOT NULL,
    `subject_id` int(10) unsigned NOT NULL,
    `value` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE INDEX `un`(`student_id`, `subject_id`) USING BTREE
);
```
写在最后：
再次重申，这种概念是中文编程界（或者说是中文编程博客界）人为造出的。
上面的例子看看就得了，根本就是胡编一个 `联合主键` 的定义出来，你会发现它其实就是一个最简单的自增主键，只不过表的逻辑上 `student_id` + `subject_id` 是唯一的，`id` 就成了所谓的二者的 `联合主键`。