是否可以创建一个表,其中两列表示主键,其中一列是自动编号的,但不是不同的。类似于(teacherID,schoolID(FK),teacherName),其中前两个是主键,第一个是自动编号。当插入来自不同学校的教师时,教师ID的自动递增应取决于学校。
插入的示例
- 1,1,史蒂文
- 2,1,Leslie
- 1,2,玛丽亚
我知道可以让SQL查询像这样插入,但在表设置中可能吗?
你说过:Something like (teacherID,schoolID(FK),teacherName) where first two are primary key and first one is autonumber
。
听起来你在老师和学校之间有一种多对多的关系。这很正常。你需要三张桌子——老师、学校和一张连接桌。让我们把那个老师叫做学校。它将包含其他2个表的外键,以及您想要存储的任何其他表(isActive、dateCreated等)。它的主键是两个外键,再加上你需要的任何其他东西,使它独一无二。
要在teacherSchool表中输入记录,您必须向插入查询传递必要的值。这将被纳入您用于数据输入的任何内容中。事实上,即使按照你目前的设计,你也需要一些东西,让你的数据输入人员能够识别学校。不管是什么,都应该将schoolID传递给插入查询。
自动编号不是这样工作的。如果你想做这样的事情,你必须自己计算。但我必须提醒你不要这样做。我想这是一张教师表,你想做的是个坏主意,因为
- 每个老师都应该有自己独特的钥匙
- 如果密钥的一部分是可能随时间变化的外键,那么将密钥设为复合密钥是个坏主意