在SQLite3

时间:2018-02-27 16:56:27

标签: sqlite records

我目前正在研究SQLite Studio中的数据库结构(不确定这本身是否重要,但可能会提到),并且错误消息让我想知道我是否只是以错误的方式去或者那里我错过了一些微妙之处。

假设有两个表,人物基本(人物ID,人物名称,人物 - 性别)和人物统计(人物ID,人物名称,人物大小)。我正在寻求实现的目标是“人员基础知识中的每条记录都对应于人员统计中的单个记录。”,理想情况下,人员ID中的人员ID和人员名称反映了相关人员ID。人物基础知识和人物名称。

我一直认为,使用外键可以实现这一目标,但我也无法让它发挥作用。

当我在人物基础上添加一个人时,它工作正常,但是当我转到人员统计时,不存在相应的记录,如果我尝试创建一个并用相应的数据填充外键列,我得到此消息:“无法编辑此单元格。详细信息:在数据库'人员'上执行SQL查询时出错:没有这样的列:people-basics.person”(我认为邮件被截断)。

我目前用于表格的DDL(由SQLite Studio根据我的GUI操作自动生成):

CREATE TABLE [people-basics] (
    [person-ID]           INTEGER PRIMARY KEY AUTOINCREMENT
                                UNIQUE
                                NOT NULL,
    [person-NAME]         TEXT    UNIQUE
                                NOT NULL,
    [person-GENDER]     TEXT
);

CREATE TABLE [people-stats] (
    [person-NAME]       TEXT    REFERENCES [people-basics] ([person-NAME]),
    [person-SIZE]     NUMERIC
);

(我现在已经从人员统计信息中删除了人物ID列,因为我似乎一次只能拥有一个外键,不确定这是否属实。)

1 个答案:

答案 0 :(得分:0)

好吧,那有点傻。

通过从表名和列名中删除连字符解决了整个问题。 (所以:charBasics而不是char-basics等。)

好啊。