SQLite:自动递增主键时选择正确的记录到link

SQLite : Choose the right record to link when auto increment primary key

我有一个 SQLite 数据库,其中一个 table 有一个自动递增整数作为主键,另一个 table link 编辑到第一个 table,通过外键。 我不明白如何选择从第一个 table 到 link 的哪一行与第二个 table.

的正确行

让我举个例子来说明:

Table 主键自增的学生 (0, 1, 2, ..., 10)

Table 具有这些行的课程: name = 'French', grade = 'B', student (foreign key) = 3

如何告诉数据库学生 3 的法语成绩为 B?因为我不知道分配给学生的主键(自动编号),所以我只知道他的名字。

您可以使用内置的 Sqlite 函数 sqlite3_last_insert_rowid() like this or like this.

如果你是 运行 多线程的东西,看起来好像有一些问题,所以一定要 read up on on proper usage。在其中一个参考文献中发布的示例将此作为替代方案。我没试过,但值得探索:

select seq from sqlite_sequence where name="table_name"

当然,您总是需要一个自然键来识别每个结果的学生。我假设学生的名字是不够的,因为你可能有几个同名的学生。通常,您会希望学生有一个卷号或类似的标识符分配给他们。如果您没有足够的信息来唯一地识别学生,那么显然无法判断哪些结果属于哪个学生!