访问时自动编号不是distintc

时间:2015-12-23 17:57:47

标签: sql ms-access autonumber

是否可以创建一个表,其中两列代表主键,其中一列是自动编号但不是不同的。像(teacherID,schoolID(FK),teacherName)这样的东西,前两个是主键,第一个是自动编号。当插入来自不同学校的教师时,教师ID自动增量应该取决于学校。

插入示例

  • 1,1,Steven
  • 2,1,Leslie
  • 1,2,Maria

我知道可以像这样插入SQL查询,但是在表格设置中是否可以?

2 个答案:

答案 0 :(得分:1)

你这样说:Something like (teacherID,schoolID(FK),teacherName) where first two are primary key and first one is autonumber

听起来你在老师和学校之间有很多关系。这很正常。您可以使用3个表格完成此操作 - 教师,学校和联结表。我们叫老师学校。它将包含其他2个表的外键,以及您想要存储的任何其他内容(isActive,dateCreated等)。它的主键是两个外键加上你需要的其他任何东西才能使它成为唯一的。

要将记录输入teacherSchool表,您必须将插入查询传递给必要的值。这将被合并到您用于数据输入的任何内容中。事实上,即使你当前的设计,你需要一些东西,让你的数据录入人员识别学校。无论是什么,都应该将schoolID传递给您的插入查询。

答案 1 :(得分:0)

这不是自动编码的工作方式。如果你想做这样的事情,你必须自己计算。但我必须提醒你不要这样做。我认为这是一个教师表,你想做的是一个坏主意,因为

  1. 每位教师都应该有自己独特的钥匙。
  2. 将密钥设为复合密钥是个坏主意,其中密钥的一部分是可随时间变化的外键。