在上一课程中,设置了导航规则以确保用户为新的分类信息广告输入唯一标识。因为您并不希望使用 Web 站点的用户通过反复试验而窃取唯一标识,所以此过程是无益的并且不切实际。在本课程中,将设置自动键生成以便数据库对它包含的每条新记录自动给定一个唯一编号。
自动键生成是一个复杂的主题,但是简单说来,如果某一数据库为键生成保留了一个特殊的表,该数据库就可以选择新键。此表的某一列(增量器列)必须具有一组未使用过的键,而另一列(标识列)则必须具有从 1 开始的按顺序排列的一组号码。当数据库需要新键时,它从标识列为 1 的行取出键,然后获取一个新键以准备好供下一次使用。
当数据库需要新的唯一键时,它会查找标识列值为 1 的行。此行的增量器列值保存下一个可用的键。数据库使用此键并更新表,以便下一次可以使用新键。
| 标识列 | 增量器列 |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
在从表中访存下一个可用键之后,就会更新表,以获得下一次需要的键。数据库还可以通过采用多行的增量器列值一次检索多个键。
简而言之,要使自动键生成工作,只需将键生成表设置为两列:一列是主键列,它用作标识列;另一列用于存储下一个可用键。必须使用这样一条记录来初始化此表:该记录的标识列值为 1,并且其增量器列值是第一个可供使用的键。一旦设置了这两列,您就可以开始使用自动键生成。