外键只能是别的表的主键吗

不一定,外键可以是其他表的主键或唯一键。
在数据库设计中,外键(Foreign Key)用于建立两个表之间的引用关系。通常情况下,外键是用来引用另一个表的主键(Primary Key)的,因为主键是唯一标识一个表中的记录的字段。这样做可以保证数据的引用完整性,即确保通过外键引用的记录在另一表中确实存在。
然而,外键并不局限于只能引用主键。在某些情况下,外键也可以引用其他表上的唯一键(Unique Key)。唯一键确保表中的某个字段或字段组合在数据库表中是唯一的,但并不要求必须是主键。例如,如果某个字段在多个表中都需要保持唯一性,但不需要作为主键,那么这个字段可以作为外键在相关表中使用。
总之,外键的主要目的是维护数据的引用完整性,它可以是另一个表的主键,也可以是唯一键,具体取决于数据库的设计需求和业务逻辑。