[英]Table without primary key in DB?
我在数据库中有 4 个表,它们定期连接。 现在我必须创建没有新主键的新表,但它必须有来自其他表的外键。
是否可以?
如果您的新表与其他表的关系是一对一的,则可以将外键用作主键。 否则您将需要单个或复合主键以避免行冗余。
是的。 为此,您需要在外键中涉及的列上建立索引。 但它不必是唯一索引。
请注意这一点。 主键和所有索引可以有多个列。 如果您的新表是所谓的连接表,显示了其他两个表的行之间的多对多关系,您可以从两列创建主键。 举例来说,如果你有一个student
用表的主键student_id
,和teacher
用表的主键teacher_id
,您可以创建这样的表。
CREATE TABLE student_teacher (
student_id INT NOT NULL,
teacher_id INT NOT NULL,
PRIMARY KEY (student_id, teacher_id),
UNIQUE INDEX teacher_student (teacher_id, student_id)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.