插入时外键不匹配(SQLite)

马阿

这是我的sqlite代码。

CREATE TABLE "performance" (
    "title" TEXT,
    "date"  date,
    "theaterID" INTEGER,    

PRIMARY KEY("title","date","theaterID"),

    FOREIGN KEY("title") REFERENCES "movies"("title"),
    FOREIGN KEY("theaterID") REFERENCES "theater"("theaterID")
);

CREATE TABLE "reservation" (
    "userName"  TEXT,
    "reservationID" INTEGER auto_increment,
    "date"  date,
    "theaterID" INTEGER,
    PRIMARY KEY("userName","reservationID","date","theaterID"),
    FOREIGN KEY("date") REFERENCES "performance"("date"),
    FOREIGN KEY("userName") REFERENCES "user"("userName"),
    FOREIGN KEY("theaterID") REFERENCES "theater"("theaterID")
);

然后按特定顺序插入以下内容:

INSERT INTO performance(title,date,theaterID) 
VALUES("The Godfather", 20200230, 9);



INSERT INTO reservation(userName,reservationID,date,theaterID)
VALUES("user1", 1 , 20200230, 9);

一切正常,直到我尝试插入预订。我收到以下错误:

“外键不匹配错误-引用“性能”的“保留”

我似乎找不到原因?我必须做些什么改变?

戈登·利诺夫

你有:

FOREIGN KEY("date") REFERENCES "performance"("date"),

但是,主键上performance包含三个部分:

PRIMARY KEY("title", "date", "theaterID"),

您需要在外键声明中以正确的顺序引用所有三个:

FOREIGN KEY("date") REFERENCES "performance"("title", "date", "theaterID"),

但是,"title"不在表中,因此您必须添加它。

或者,只需将自动递增的主键添加到该键"performance"并将其用作参考。

此外,请删除双引号。它们只会使SQL更加难以编写和读取。而且答案更难写。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

外键不匹配SQLite

来自分类Dev

是否可以忽略使用sqlite插入时的外键冲突?

来自分类Dev

外键不匹配

来自分类Dev

是什么导致此sqlite外键不匹配?

来自分类Dev

SQLite3-BLOB上的外键不匹配

来自分类Dev

为什么在插入时不设置多对一关系的外键字段?

来自分类Dev

sqlite中尝试将rowid用作外键时出现外键不匹配错误

来自分类Dev

由于密钥变更而尝试插入时,外键约束失败

来自分类Dev

在插入时,GORM不会填充外键ID

来自分类Dev

SQLite外键插入应失败

来自分类Dev

SqliteException:SQLite错误1:“外键不匹配-引用“电影”的“出租””

来自分类Dev

什么导致sqlite数据库中的外键不匹配错误

来自分类Dev

外键不匹配-引用“挑战”的“注释”

来自分类Dev

Microsoft SQL Server - 如何仅在插入时强制执行外键但允许保留孤立外键?

来自分类Dev

无法使用外键插入记录(Android sqlite)

来自分类Dev

Postgres:外键不匹配所有行

来自分类Dev

SQL约束,以防止外键不匹配

来自分类Dev

春季数据JPA @Query与外键:参数不匹配

来自分类Dev

使用 2 个外键查找不匹配的记录

来自分类Dev

为什么会出现外键不匹配?

来自分类Dev

在插入时创建重复的外键条目-EF Core和Web Api 3.1

来自分类Dev

插入时出现sqlite异常

来自分类Dev

复合外键插入

来自分类Dev

在sqlite上插入时SQLite android NullPointerException

来自分类Dev

SQLite使用外键

来自分类Dev

SQLite 中的外键

来自分类Dev

插入时发生Python键错误

来自分类Dev

如何连续插入外键?

来自分类Dev

同时插入多个外键